yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
RDK X5 Robot📖
01. RDK-X5-Robot Introduction
  • 1.Introduction
  • 2.Common Problem Analysis
  • 3.Battery and charger usage precautions
  • 4.TF card expand capacity
02. Assembly Tutorial
  • Assembly Tutorial
  • Assembly Video-1
  • Assembly Video-2
  • Assembly Video-3
  • Assembly Video-4
03. Remote Control Course
  • 1.Mobile APP remote control
  • 2.USB Wireless Controller Remote Control
04. ROS Driver Board Course
  • 1. Introduction of extension board
  • 2. Set up STM32 development environment
  • 3. Key control buzzer sound
  • 4. FreeRTOS application
  • 5. Serial communication
  • 6. SBUS model remote control
  • 7. CAN bus communication
  • 8. RGB color light strip
  • 9. Timer interrupt control PWM servo
  • 10. Control serial steering gear
  • 11. Nine-axis attitude sensor to obtain data
  • 12. Control motor forward and reverse
  • 13. The timer captures encoder data
  • 14. Theory of robot kinematics analysis
  • 15. PID control robot motion
05. Basic Control Course
  • 1.Update expansion board firmware
  • 2.Install Python driver library
  • 3.Set the car type
  • 4.Open and close APP program control
  • 5.Turn hotspot mode on and off
  • 6.Buzzer sound
  • 7.Control the motor to rotate forward and reverse
  • 8.Controlling robot movement
  • 9.OLED display
  • 10.Control fans and lighting effects
06. Development Environment
  • 1. Virtual machine installation and use
  • 2. Linux Basics
  • 3. Remote connection
  • 4. Multi-machine communication configuration
  • 5. Bind device ID
  • 6. Image installation and backup
07. ROS2 Basic Course
  • 1. Introduction to ROS2
  • 2. ROS2 install Humble
  • 3. ROS2 development environment
  • 4. ROS2 workspace
  • 5. ROS2 function package
  • 6. ROS2 node
  • 7. ROS2 topic communication
  • 8. ROS2 service communication
  • 9. ROS2 action communication
  • 10. ROS2 custom interface message
  • 11. ROS2 parameter service case
  • 12. ROS2 meta-function package
  • 13. ROS2 distributed communication
  • 14. ROS2 DDS
  • 15. ROS2 time related API
  • 16. ROS2 common command tools
  • 17. ROS2 rviz2 use
  • 18. ROS2 rqt toolbox
  • 19. ROS2 Launch startup file configuration
  • 20. ROS2 recording and playback tool
  • 21. ROS2 URDF model
  • 22. ROS2 Gazebo simulation platform
  • 23. ROS2 TF2 coordinate transformation
08. Robot Chassis Control Course
  • 1. PID algorithm theory
  • 2. Robot information release
  • 3. Robot control
  • 4. Robot state estimation
  • 5. Robot calibration
  • 6. Robot trajectory tracking
  • 7. URDF Model
09. LiDAR Course
  • 1. Introduction and use of lidar
  • 2. Lidar obstacle avoidance
  • 3. Lidar tracking
  • 4. Lidar guard
  • 5. Lidar patrol
  • 6. gmapping mapping algorithm
  • 7. Cartographer mapping algorithm
  • 8. Navigation and obstacle avoidance
  • 9. App Mapping and Navigation
10. OpenCV Course
  • 1. Getting started with OpenCV
  • 2. OpenCV geometric transformation
  • 3. OpenCV Image Processing
  • 4. OpenCV image beautification
  • 5. QR code creation and recognition
11. Mipi Camera Course
  • 1. Camera driver
  • 2. Adjust the color HSV value
  • 3. Color recognition
  • 4. Color Tracking
  • 5. Color Follow
  • 6. QR code instructions
  • 7. Face Detection
  • 8. Object Detection
  • 9. Visual line patrol-OpenCV
  • 10. Visual line patrol-deep learning
  • 11. Human body tracking
  • 12. Gesture control
12. Depth Camera Course
  • 1. Use of Depth Camera
  • 2. Camera intrinsic calibration
  • 3. ROS+OpenCV Basics
  • 4. AR Vision
  • 5. Color Tracking
  • 6. Object Tracking
  • 7. RTAB-Map 3D Mapping Navigation
13. Multi-robot Synchronous Control
  • Multi-vehicle synchronous control
Remote login control
  • 1. VNC and SSH remote login
  • 2. Jupyter lab login and case code running
Download
  • System_File
  • Code
  • VM_File
  • Software_Tools
  • Hardware_Info
  • Firmware
  • Instruction_Manual
  • ROS2_Basic_VM
Download ZIP

Welcome to RDK X5 Robot repository

1. Getting started with OpenCV

Getting Started with OpenCV

Getting Started with OpenCV1.1, Image reading and saving1.2, Camera reading and display1.3、Pixel reading and modification

Before running the sample program, you need to switch to the directory where the code is located. After SSH connects to the car, run in the terminal,

xxxxxxxxxx
cd /home/sunrise/yahboomcar_ws/src/yahboomcar_astra/opencv_examples

1.1, Image reading and saving

After the car terminal switches to the directory where the code is located, run the program,

xxxxxxxxxx
python3 1_1.py
​x
import cv2
if __name__ == '__main__':
img = cv2.imread('figures/yahboom.jpg')
cv2.imwrite("figures/1_1.jpg",img)

'''
Image reading: cv2.imread(filepath,flags)
filepath: the full path to read the image
flags: how to read the image
cv2.IMREAD_UNCHANGED: keep the original format unchanged, can be represented by -1;
cv2.IMREAD_GRAYSCALE: reads in a grayscale image, which can be represented by 0;
cv2.IMREAD_COLOR: reads in a color image, which can be represented by 1;
cv2.IMREAD_UNCHANGED: reads in an image including its alpha channel, which can be represented by 2.
Image saving: cv2.imwrite(filepath, img)
filepath: the full path of the saved image
img: the image to be saved
'''

After the program is run, it will read the figures/yahboom.jpg image and save the read image as figures/1_1.jpg.

In VSCode, SSH to the car and enter the path,

xxxxxxxxxx
/home/sunrise/yahboomcar_ws/src/yahboomcar_astra/opencv_examples/figures

You can view the read image yahboom.jpg and the saved image 1_1.jpg:

1684999768676

[Note] There is also an important function cv.imshow() in opencv for image display. Since the car system does not have a graphical interface and cannot use this function for display, it will not be introduced here and will not be used later.

1.2, Camera reading and display

Note: This step is applicable to the car equipped with a depth camera.

After switching to the directory where the code is located in the car terminal, run the program,

xxxxxxxxxx
python3 1_2.py
xxxxxxxxxx
import cv2
if __name__ == '__main__':
frame = cv2.VideoCapture(8)
if frame.isOpened():
ret,img = frame.read()
cv2.imwrite('figures/1_2.jpg',img)
frame.release()

'''
Open the camera: cv2.VideoCapture(args["videoPath"])
The parameter here is 8, representing the Astra camera;
If the parameter is a video file path, open the video, such as cv2.VideoCapture("../test.avi")
Read image data: ret,img = frame.read()
ret: a bool value to determine whether the correct frame is read back
img: image data of this frame
'''

After running, this program will read a frame of camera image data and save the read frame to figures/1_2.jpg.

1685001319891

1.3、Pixel reading and modification

After switching to the directory where the code is located in the car terminal, run the program,

xxxxxxxxxx
python3 1_3.py
xxxxxxxxxx
import cv2
if __name__ == '__main__':
img = cv2.imread('figures/yahboom.jpg')
(b,g,r) = img[100,100] # Read pixel value
print(b,g,r)
for i in range(0,10):
for j in range(0,200):
img[i,j] = (0,0,0) # Modify pixel value
cv2.imwrite("figures/1_3.jpg",img)

The terminal outputs the coordinates (100, 100) position,

1685002015448

And the pixels in the upper left corner of the saved image are changed to black:

1685001980683

App Mapping and Navigation
OpenCV geometric transformation

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

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文