opencv视频操作函数cv2.video capture(),cv2.videwrite()

videocapture()的参数是设备的索引号,或者是一个视频文件。如果设备索引号是本身的笔记本的内置摄像头,则其参数为0.可以设置1或者其他的来选择别的摄像头。

import cv2

cap = cv2.VideoCapture(0)

while True:
    # 一帧一帧读q取图像
    ret, frame = cap.read()

    # 将图像转换成灰度图
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 显示结果
    cv2.imshow('frame', gray)
    if cv2.waitKey(1)& 0xFF == ord('q'):
        break

# 当所有的都做完,播放录像
cap.release()
cv2.destroyAllWindows()

上述代码会开启你的笔记本摄像头,然后将其转换为灰度图像,在播放出来。

•CV_CAP_PROP_POS_MSEC视频文件的当前位置,以毫秒为单位。
•接下来将要解码/捕获的帧的基于CV_CAP_PROP_POS_FRAMES的索引从0开始。
•CV_CAP_PROP_POS_AVI_RATIO视频文件的相对位置:0-电影的开始,1-电影的结束。 •CV_CAP_PROP_FRAME_WIDTH视频流中帧的宽度。
•CV_CAP_PROP_FRAME_HEIGHT视频流中帧的高度。
•CV_CAP_PROP_FPS帧速率。
•CV_CAP_PROP_FOURCC编解码器的4个字符的代码。
•CV_CAP_PROP_FRAME_COUNT视频文件中的帧数。
•CV_CAP_PROP_FORMAT由retrieve()返回的Mat对象的格式。
•CV_CAP_PROP_MODE特定于后端的值,指示当前的捕获模式。 •CV_CAP_PROP_BRIGHTNESS图像的亮度(仅适用于相机)。
•CV_CAP_PROP_CONTRAST图像的对比度(仅适用于相机)。 •CV_CAP_PROP_SATURATION图像的饱和度(仅适用于相机)。
•CV_CAP_PROP_HUE图像的色相(仅适用于相机)。
•CV_CAP_PROP_GAIN图像增益(仅适用于相机)。
•CV_CAP_PROP_EXPOSURE曝光(仅适用于相机)。
•CV_CAP_PROP_CONVERT_RGB布尔标志,指示是否应将图像转换为RGB

#fourcc意为四字符代码(Four-Character Codes),顾名思义,该编码由四个字符组成,下面是VideoWriter_fourcc对象一些常用的参数,注意:字符顺序不能弄混

#cv2.VideoWriter_fourcc(‘I’, ‘4’, ‘2’, ‘0’),该参数是YUV编码类型,文件名后缀为.avi

#cv2.VideoWriter_fourcc(‘P’, ‘I’, ‘M’, ‘I’),该参数是MPEG-1编码类型,文件名后缀为.avi

#cv2.VideoWriter_fourcc(‘X’, ‘V’, ‘I’, ‘D’),该参数是MPEG-4编码类型,文件名后缀为.avi

#cv2.VideoWriter_fourcc(‘T’, ‘H’, ‘E’, ‘O’),该参数是Ogg Vorbis,文件名后缀为.ogv

#cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’),该参数是Flash视频,文件名后缀为.flv

作者:远叔
链接:https://www.jianshu.com/p/d239e221cab4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

import cv2

cap = cv2.VideoCapture(0)

# 定义编解码器和创造对象
fourcc = cv2.VideoWriter_fourcc(*'XVID')
# out是一个video writer实例化对象,第一个参数是要制作的视频文件名称
# 20是fps,接下来时视频的长宽,如果只保存灰度图贼还需要加上False。
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

while(True):
    ret, frame = cap.read()
    if ret == True:
        frame = cv2.flip(frame, 0)

        # 写入帧
        out.write(frame)

        cv2.imshow('frame', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
# 完成所有操作之后,放出视频
cap.release()
out.release()
cv2.destroyAllWindows()

``
上述代码的功能是,打开你的摄像头,录取一段视频,然后将这段视频存储为文件名为output的avi文件。


你可能感兴趣的:(基础函数学习)