1.使用opencv打开摄像头
import cv2 as cv
def video_demo():
#0是代表摄像头编号,只有一个的话默认为0
capture=cv.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
while(True):
ref,frame=capture.read()
cv.imshow("1",frame)
#等待30ms显示图像,若过程中按“Esc”退出
c= cv.waitKey(30) & 0xff
if c==27:
capture.release()
break
video_demo()
cv.destroyAllWindows()
cv.VideoCapture(0):读取视频,当输入为0时默认打开的是电脑摄像头,也可以如输入视频文件的路径。
capture.read(): 返回两个值ref和frame,前者为True或False表示有没有读取到图片,后者参数表示截取到的每一张图片。
cv.inshow('name', frame):显示图片,没有返回值,第一个参数为窗口的名称,第二个参数为要显示的图片。
cv.waitKey(30) & 0xff: cv.waitKey(delay)函数如果delay为0就没有返回值,如果delay大于0,如果有按键就返回按键值,如果没有按键就在delay秒后返回-1,0xff的ASCII码为1111 1111,任何数与它&操作都等于它本身。Esc按键的ASCII码为27,所以当c==27时,摄像头释放。更多关于函数的解释可以参考博客。(我有点没明白的是,如果没有按键返回-1与0xff进行&运算会是什么结果,我试了一下在30s前后按Esc都没有区别,30s后摄像头也不会

本文介绍如何在Linux环境下利用OpenCV库调用笔记本摄像头,并展示了一个简单的视频捕捉及图像识别的实现。首先,通过cv.VideoCapture(0)打开摄像头,然后使用cv.imshow显示图像,并通过cv.waitKey来检测键盘事件,实现Esc键关闭摄像头的功能。其次,介绍了如何使用OpenCV的cv2.dnn模块加载预训练的Yolov3模型进行目标检测,包括读取模型、处理图像、进行预测和显示结果等步骤。
最低0.47元/天 解锁文章
3697

被折叠的 条评论
为什么被折叠?



