opencv关于摄像头的操作

使用摄像头的基本操作:

    1.打开摄像头:  

   image = cv2.VideoCapture(0)  #打开摄像头  0代表了摄像头0。这里还可以填写视频的路径,代表打开视频

    2.读取摄像头的内容:

   ret,frame = image.read()   ret:读取成功为True,不成功为False   frame:就是读取到的图片,我们要的就是这个

    3.显示图片:cv2.imshow(窗口名,图片)

cv2.imshow("show",frame)     #显示图片
if cv2.waitKey(30) & 0xFF == ord('q'):  #设置退出键q
        break

     cv2.show后面一定要加cv2.waitKey(),  这是函数是用来设置你的图片显示 时间的

 

如何保存为视频呢

    1.创建一个视频对象:

fourcc = cv2.VideoWriter_fourcc(*'MP43')   #视频编码方式  http://www.fourcc.org/codecs.php
video = cv2.VideoWriter('video.avi',fourcc,25,(640,480)) #创建一个视频对象video
    video = cv2.VideoWriter(视频名,编码格式,fps,分辨率)

 

    2.写入图片:

video.write(frame)   #frame就是图片

 

如何得到摄像头的其它属性: 

 

fps = image.get(cv2.CAP_PROP_FPS) #获取摄像头的fps  ,其它属性https://docs.opencv.org/3.3.0/d4/d15/group__videoio__flags__base.html#gaeb8dd9c89c10a5c63c139bf7c4f5704d

总体代码:

import cv2

image = cv2.VideoCapture(0)  #打开摄像头

frame_count = 0  #记录帧数
img_count = 0   #记录图片个数

fourcc = cv2.VideoWriter_fourcc(*'MP43')   #视频编码方式  http://www.fourcc.org/codecs.php
video = cv2.VideoWriter('video.avi',fourcc,25,(640,480)) #创建一个视频对象video
while True:
    ret,frame = image.read()          #读取摄像头内容

    video.write(frame)              #向视频对象写入图片

    fps = image.get(cv2.CAP_PROP_FPS) #获取摄像头的fps  ,其它属性https://docs.opencv.org/3.3.0/d4/d15/group__videoio__flags__base.html#gaeb8dd9c89c10a5c63c139bf7c4f5704d
    # print(fps)

    cv2.imshow("show",frame)     #显示图片

    if cv2.waitKey(30) & 0xFF == ord('q'):  #设置退出键q
        break

    #每隔100帧存储一下图片   没什么用
    if frame_count%100 ==0:
        cv2.imwrite("{}.jpg".format(img_count),frame)
        img_count+=1
    frame_count+=1
    #print(frame_count)

image.release()   #退出摄像头对象
cv2.destroyAllWindows() #关闭所有窗口

 

上一篇:获取图像最亮的点


下一篇:Python+opencv调用摄像头获取视频保存到本地并应用到YOLO中保存视频检测后的结果