yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Raspbot📖
1.First Trial and Installation
  • 1.1 Installation video
  • 1.2 First Trial
2.Remote control course
  • 2.1 APP control car
  • 2.2 IR control car
3.Preparation
  • 3.1 Preparation
  • 3.2 Run a code on JupyterLab
  • 3.5 TF card expand capacity
4.OpenCV Basic course
A.Getting started with OpenCV
  • 1.Introduction of OpenCV
  • 2.OpenCV image read and display
  • 3.OpenCV image write
  • 4.OpenCV image quality
  • 5.OpenCV pixel operation
B.OpenCV Geometric transformat
  • 1.Picture Zoom
  • 2.Picture Cut
  • 3.Picture Shift
  • 4.Picture Mirroring
  • 5.Affine Map
  • 6.Picture Rotation
  • 7.Perspective Transformation
C.OpenCV picture processing
  • 1.Grayscale processing
  • 2.Image Binarization
  • 3.Edge detection
  • 4.Drawing line segment
  • 5.Drawing rectangle circle
  • 6.Drawing text picture
D.OpenCV image beautification
  • 1.Histogram of color pictures
  • 2.Histogram equalization
  • 3.Image restoration
  • 4.Brightness enhancement
  • 5.Skin whitening
  • 6.Gaussian mean filtering
  • 7.Median filtering
E.OpenCV machine learning
  • 1.KNN recognition of handwritten numbers
  • 2.CNN recognition of handwritten numbers
  • 3.SVM recognition of handwritten numbers
5.Hardware Control course
  • 5.1 Drive buzzer
  • 5.2 Drive motor
  • 5.3 Drive servo
  • 5.4 Ultrasonic ranging
  • 5.5 Ultrasonic avoid
  • 5.6 Ultrasonic+IR avoid
  • 5.7 Tracking
  • 5.8 Restricting
  • 5.9 Drive LED
  • 5.10 IR control test
  • 5.11 IR control car
6.AI vision course
  • 6.1 Driver camera
  • 6.2 Color recognition
  • 6.3 HSV value test
  • 6.4 Camera color tracking
  • 6.5 Car color tracking
  • 6.6 Tensorflow object recognition
  • 6.7 QR code recognition
  • 6.8 QR code control
  • 6.9 Face detection
  • 6.10 Face tracking
  • 6.11 Autopilot
7.Battery and charging
  • Battery and charging
Download
  • APP(iOS/Android)
  • Code
  • Download image
  • Instruction manual
  • More Annex
Download ZIP
FAQ
  • 1、Raspbot-Raspberry Pi 4b version desktop connection WiFi method
  • 2、Can't connect your home WiFi
  • 3、How to check IIC function on Raspbot
  • 4、Gesture recognition cannot work normally.
  • 5、How to write image file into SD card

Welcome to Raspbot repository

6.1 Driver camera


Path:

/home/pi/Yahboom_project/Raspbot/3.AI Vision course/01.Drive camera/Drive camera.ipynb

Common API functions used by OpenCV:

1. cv2.VideoCapture()

cap = cv2.VideoCapture(0)

The parameter in VideoCapture () is 0, which means Raspberry Pi video0.

(Note: You can view the current camera through the command ls/dev/ )

image.png

cap = cv2.VideoCapture("…/1.avi")

VideoCapture("…/1.avi"), This parameter indicates that if the path of the video file is entered, the video is opened.

2.cap.set()

Camera parameters common configuration methods:

capture.set(CV_CAP_PROP_FRAME_WIDTH, 1920);  # Width

capture.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);  # Height

capture.set(CV_CAP_PROP_FPS, 30);              # Frame

capture.set(CV_CAP_PROP_BRIGHTNESS, 1);       # Brightness 1

capture.set(CV_CAP_PROP_CONTRAST,40);        # Contrast 40

capture.set(CV_CAP_PROP_SATURATION, 50);      # Saturation 50

capture.set(CV_CAP_PROP_HUE, 50);            # Hue 50

capture.set(CV_CAP_PROP_EXPOSURE, 50);       # Visibility 50

Parameter explanation:

#define CV_CAP_PROP_POS_MSEC  0  

// Calculate the current position in milliseconds

#define CV_CAP_PROP_POS_FRAMES     1  

// Calculate the current position in frame

#define CV_CAP_PROP_POS_AVI_RATIO  2  // Relative position of the video

#define CV_CAP_PROP_FRAME_WIDTH    3   // Width

#define CV_CAP_PROP_FRAME_HEIGHT   4   // Height

#define CV_CAP_PROP_FPS            5    // Frame rate

#define CV_CAP_PROP_FOURCC         6   // 4 Character encoding

#define CV_CAP_PROP_FRAME_COUNT    7  // Video frames

#define CV_CAP_PROP_FORMAT         8   // Video format

#define CV_CAP_PROP_MODE           9    

// Backend specific value indicating the current capture mode.

#define CV_CAP_PROP_BRIGHTNESS    10   // Brightness

#define CV_CAP_PROP_CONTRAST      11  // Contrast

#define CV_CAP_PROP_SATURATION    12 // Saturation

#define CV_CAP_PROP_HUE           13  // Hue

#define CV_CAP_PROP_GAIN          14 // Gain

#define CV_CAP_PROP_EXPOSURE      15 // Exposure

#define CV_CAP_PROP_CONVERT_RGB   16

// Mark whether the image should be converted to RGB.

#define CV_CAP_PROP_WHITE_BALANCE 17 // White balance

#define CV_CAP_PROP_RECTIFICATION 18 // Stereo camera calibration mark (note: only support DC1394 v2)

3.cap.isOpened()

Return true indicates open camera successful and false indicates open camera failure

4.ret,frame = cap.read()

cap.read () reads the video frame by frame. ret and frame are the two return values of the cap.read () function.

ret is a Boolean value, if the read frame is correct, it will return true, If the file has not been read to the end, it returns False.

Frame is the image of each frame, which is a three-dimensional matrix.

5.cv2.waitKey(n)

n represents the delay time, if the parameter is 1, it means a delay of 1ms to switch to the next frame of image.

If the parameter is too large, such as cv2.waitKey (1000), it will freeze because of the long delay.

The parameter is 0, such as, cv2.waitKey (0) only displays the current frame image, which is equivalent to video pause.

6.cap.release() and destroyAllWindows()

Call cap.release () to release the video.

Call destroyAllWindows () to close all image windows.

About Code

Since our entire tutorial runs in JupyterLab, we must understand the various components inside.

Here we need to use the image display component.

1.Import library

import ipywidgets.widgets as widgets

2.Set Image component

image_widget = widgets.Image(format='jpeg', width=600, height=500)

3.Display Image component

display(image_widget)  

4.Open camera and read image

image = cv2.VideoCapture(0)     # Open camera

ret, frame = image.read()        # Read camera data

5.Assignment to components

#Convert the image to jpeg and assign it to the video display component

image_widget.value = bgr8_to_jpeg(frame)

import cv2
import ipywidgets.widgets as widgets
import threading
import time
 
#Set camera display component
image_widget = widgets.Image(format='jpeg', width=600, height=500)  
display(image_widget)      # display camera component

#bgr 8 to jpeg format
import enum
import cv2
 
def bgr8_to_jpeg(value, quality=75):
    return bytes(cv2.imencode('.jpg', value)[1])

image = cv2.VideoCapture(0)        # Open camera
 
# width=1280
# height=960
# cap.set(cv2.CAP_PROP_FRAME_WIDTH,width)  # set width of image
# cap.set(cv2.CAP_PROP_FRAME_HEIGHT,height)  # set height of image
 
image.set(3,600)       
image.set(4,500)
image.set(5, 30)  # set frame 
image.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc('M', 'J', 'P', 'G'))
image.set(cv2.CAP_PROP_BRIGHTNESS, 40)  #set brightness -64 - 64  0.0
image.set(cv2.CAP_PROP_CONTRAST, 50)   #set contrast -64 - 64  2.0
image.set(cv2.CAP_PROP_EXPOSURE, 156)  #set exposure value 1.0 - 5000 156.0
 
ret, frame = image.read()     # read camera data
image_widget.value = bgr8_to_jpeg(frame)

while 1:
    ret, frame = image.read()
    image_widget.value = bgr8_to_jpeg(frame)
    time.sleep(0.010)
image.release()   #After using the object, 
we
 need to release the object, otherwise when we use the object again, the system will prompt that the object be occupied, making it unusable
.

The camera screen is shown below:

image.png 

 


IR control car
Color recognition

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文