📜  如何获取Python cv2.VideoCapture 对象的属性?

📅  最后修改于: 2022-05-13 01:55:05.165000             🧑  作者: Mango

如何获取Python cv2.VideoCapture 对象的属性?

让我们看看如何从 cv2.VideoCapture 对象中获取属性并了解它们是如何工作的。 cv2.VideoCapture 是 openCV 库(用于计算机视觉、机器学习和图像处理)的一个函数,它允许通过实时网络摄像头或视频文件捕获视频来处理视频。要了解有关此函数的更多信息,请参阅此链接。

安装

在我们开始之前,请确保在Python 3.X 上安装 OpenCV 库。您可以使用 pip 命令安装这些:

pip install opencv-python

cv2.VideoCapture 对象的属性

通过了解 cv2.VideoCapture 对象的属性,最终通过对帧进行处理来促进视频处理。

1)Width:该属性用于获取视频流中帧的宽度。测量单位是像素。

2) Height:该属性用于获取视频流中帧的高度。测量单位是像素。

3)Fps: FPS代表每秒帧数。该属性用于获取视频的帧率。

4) 当前位置:该属性用于查找视频当前的位置,单位为毫秒。

5)总帧数:该属性用于计算视频文件的总帧数。

6) 亮度:此属性不适用于视频文件。它仅适用于相机或网络摄像头。用于找出亮度。

7) 对比度:此属性也仅适用于相机或网络摄像头。用于找出所拍摄图像的对比度。

8) 饱和度值:用于获取通过摄像机捕获的实时帧的饱和度。这也不适用于视频文件。

9) HUE Value:这是为了知道图像的 HUE 值。仅适用于相机。

10) GAIN:该属性用于获取图像的增益。不适用于视频文件,如果应用于视频文件,只需返回“0”。

11) Need to convert into RGB:该属性返回一个布尔值,指示图像是否应转换为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()


输出如下(对于网络摄像头):