版权声明:如需转载请标注 https://blog.csdn.net/weixin_40973138/article/details/84404469
在这有一点要注意:
由于我使用的是树莓派原装摄像头,故不能直接被cv.VideoCapture(0)
所检测到,所以要先修改/etc/modules
文件,在其末尾添加bcm2835-v4l2
,保存重启,随后在/dev/
目录中就能发现多了个video0
设备
import cv2 as cv
from picamera import PiCamera
def video_demo():
capture = cv.VideoCapture(0)
while True:
ret, frame = capture.read()
frame = cv.flip(frame, 1)
cv.imshow("video", frame)
if cv.waitKey(10) & 0xff == ord('q'):
break
video_demo()
cv.destroyAllWindows()
函数 | 说明 |
---|---|
cv.VideoCapture(0) | 打开摄像头。0代表的是设备id,如果有多个摄像头,可以设置其他数值;也可以是视频文件地址,调用视频文件,如果要播放要设置帧的循环 |
capture.read() | 读取摄像头。它能返回两个参数,第一个参数是bool型的ret,其值为True或False,代表有没有读到图片;第二个参数是frame,是当前截取一帧的图片 |
cv.flip(frame, 1) | 翻转。 0:上下颠倒;大于0:水平颠倒;小于0:180旋转 |
该程序实际上还是显示图片,只不过图片是在摄像头中截取每一帧。