如何获取Python cv2.VideoCapture 对象的属性?
让我们看看如何从 cv2.VideoCapture 对象中获取属性并了解它们是如何工作的。 cv2.VideoCapture 是 openCV 库(用于计算机视觉、机器学习和图像处理)的一个函数,它允许通过实时网络摄像头或视频文件捕获视频来处理视频。要了解有关此函数的更多信息,请参阅此链接。
安装
在我们开始之前,请确保在Python 3.X 上安装 OpenCV 库。您可以使用 pip 命令安装这些:
pip install opencv-python
cv2.VideoCapture 对象的属性
通过了解 cv2.VideoCapture 对象的属性,最终通过对帧进行处理来促进视频处理。
1)Width:该属性用于获取视频流中帧的宽度。测量单位是像素。
Syntax: cv2.CAP_PROP_FRAME_WIDTH
2) Height:该属性用于获取视频流中帧的高度。测量单位是像素。
Syntax: cv2.CAP_PROP_FRAME_WIDTH
3)Fps: FPS代表每秒帧数。该属性用于获取视频的帧率。
Syntax: cv2.CAP_PROP_FPS
4) 当前位置:该属性用于查找视频当前的位置,单位为毫秒。
Syntax: cv2.CAP_PROP_POS_MSEC
5)总帧数:该属性用于计算视频文件的总帧数。
Syntax: cv2.CAP_PROP_FRAME_COUNT
6) 亮度:此属性不适用于视频文件。它仅适用于相机或网络摄像头。用于找出亮度。
Syntax: cv2.CAP_PROP_BRIGHTNESS
7) 对比度:此属性也仅适用于相机或网络摄像头。用于找出所拍摄图像的对比度。
Syntax: cv2.CAP_PROP_CONTRAST
8) 饱和度值:用于获取通过摄像机捕获的实时帧的饱和度。这也不适用于视频文件。
Syntax: cv2.CAP_PROP_SATURATION
9) HUE Value:这是为了知道图像的 HUE 值。仅适用于相机。
Syntax: cv2.CAP_PROP_HUE
10) GAIN:该属性用于获取图像的增益。不适用于视频文件,如果应用于视频文件,只需返回“0”。
Syntax: cv2.CAP_PROP_GAIN
11) Need to convert into RGB:该属性返回一个布尔值,指示图像是否应转换为RGB色彩空间。
Syntax: cv2.CAP_PROP_CONVERT_RGB
直接在代码上使用这些属性将更加清晰。这是它的实现:
Python3
# importing cv2
import cv2
#For Video File
#capture=cv2.VideoCapture("sample.webm")
#For webcam
capture=cv2.VideoCapture(0)
# showing values of the properties
print("CV_CAP_PROP_FRAME_WIDTH: '{}'".format(capture.get(cv2.CAP_PROP_FRAME_WIDTH)))
print("CV_CAP_PROP_FRAME_HEIGHT : '{}'".format(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
print("CAP_PROP_FPS : '{}'".format(capture.get(cv2.CAP_PROP_FPS)))
print("CAP_PROP_POS_MSEC : '{}'".format(capture.get(cv2.CAP_PROP_POS_MSEC)))
print("CAP_PROP_FRAME_COUNT : '{}'".format(capture.get(cv2.CAP_PROP_FRAME_COUNT)))
print("CAP_PROP_BRIGHTNESS : '{}'".format(capture.get(cv2.CAP_PROP_BRIGHTNESS)))
print("CAP_PROP_CONTRAST : '{}'".format(capture.get(cv2.CAP_PROP_CONTRAST)))
print("CAP_PROP_SATURATION : '{}'".format(capture.get(cv2.CAP_PROP_SATURATION)))
print("CAP_PROP_HUE : '{}'".format(capture.get(cv2.CAP_PROP_HUE)))
print("CAP_PROP_GAIN : '{}'".format(capture.get(cv2.CAP_PROP_GAIN)))
print("CAP_PROP_CONVERT_RGB : '{}'".format(capture.get(cv2.CAP_PROP_CONVERT_RGB)))
# release window
capture.release()
cv2.destroyAllWindows()