一、环境与说明
版本 | |
---|---|
Rock5B | V1.42 |
系统 | 官方Debian11(2022-10-01版本) |
摄像头 | UVC免驱USB摄像头 |
OpenCV | 4.5.4.60 |
和树莓派使用usb摄像头有一点区别,usb摄像头插上后不是/dev/video0,这一点区别卡了半天,晚上洗澡的时候,突然灵光一闪,回来就解决了。
二、测试USB摄像头
断电后,接入摄像头。(是支持热插拔,我习惯了断电后操作)
# 检测外部摄像头设备的命令
ls /dev/video*
安装mplayer播放器(出现报错)
sudo apt-get install mplayer -y
查看USB摄像头画面
sudo mplayer tv://
这里报错了,最后一句说了 Device /dev/video0 is not a video capture device.
,默认设备不是摄像头,这里和树莓派是不一样的。
安装fswebcam视频软件
sudo apt-get install fswebcam -y
在/home/rock目录下生成一张当前摄像头拍摄到的实时照片
# 注意这里用/dev/video1就可以了
fswebcam -d /dev/video1 --no-banner -r 1280x720 -S 10 /home/rock/image.jpg
-d是配置使用哪个摄像设备
–no-banner拍出来照片没水印,不加的话,可能会报字体问题
-r后的是图片的宽与高
-S跟曝光度设置差不多。从1到10,越来越不刺眼的感觉,如果不设置这个参数或者设置为0的话可能拍出黑照片。
最后的是待保存的图片路径(如果不加路径的话默认保存在当前目录)。
所以虽然板子上没有其他摄像头,我插上去的USB摄像头也不是默认摄像设备(悲
三、安装OpenCV
默认没有pip,需要自己安装。
安装pip3
sudo apt-get install python3-pip
pip3换源
rock@rock-5b:~$ pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
Writing to /home/rock/.config/pip/pip.conf
配置虚拟环境
防止和以后和默认环境冲突
# 安装 virtualenv
sudo pip3 install -U virtualenv
# 创建虚拟环境
virtualenv -p python3 ~/my_envs/opencv
#进入专门为opencv准备的虚拟环境
source ~/my_envs/opencv/bin/activate
# 安装 numpy
pip3 install numpy
# 安装opencv
pip3 install opencv-contrib-python==4.5.4.60
在python中导入:
这个目录下/home/rock/my_envs/opencv/lib/python3.9/site-packages/cv2/
有级联分类器,OpenCV
会用到。
此时OpenCV
就已经安装完成了。
OpenCV使用摄像头
# cv_test.py
import cv2
# 注意下面括号里面是1
cap = cv2.VideoCapture(1)
while True:
ret, frame = cap.read()
if ret:
cv2.imshow("frame", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
四、总结
- 没想过板子上没有其他摄像头,但是我插上去的USB摄像头不是默认摄像设备。
- 记得用到摄像头的命令在桌面端执行,为啥安装要
opencv
呢,本来用树莓派4B跑了人脸和口罩检测,现在树莓派4B比Rock5B贵,Rock5B还比树莓派4B性能强,就用Rock5B好了。