推荐答案
在 OpenCV 中,可以通过 cv2.VideoCapture 类的 get 方法来获取视频的属性。以下是一些常用的属性及其对应的属性 ID:
- 帧率:
cv2.CAP_PROP_FPS - 分辨率(宽度):
cv2.CAP_PROP_FRAME_WIDTH - 分辨率(高度):
cv2.CAP_PROP_FRAME_HEIGHT - 总帧数:
cv2.CAP_PROP_FRAME_COUNT
示例代码如下:
// www.javascriptcn.com code example
import cv2
# 打开视频文件
video = cv2.VideoCapture('video.mp4')
# 获取帧率
fps = video.get(cv2.CAP_PROP_FPS)
print(f"帧率: {fps}")
# 获取分辨率
width = video.get(cv2.CAP_PROP_FRAME_WIDTH)
height = video.get(cv2.CAP_PROP_FRAME_HEIGHT)
print(f"分辨率: {width}x{height}")
# 获取总帧数
frame_count = video.get(cv2.CAP_PROP_FRAME_COUNT)
print(f"总帧数: {frame_count}")
# 释放视频对象
video.release()本题详细解读
1. cv2.VideoCapture 类
cv2.VideoCapture 是 OpenCV 中用于读取视频文件的类。它可以从文件、图像序列或摄像头捕获视频流。
2. get 方法
get 方法用于获取视频的各种属性。它接受一个属性 ID 作为参数,并返回该属性的值。常用的属性 ID 包括:
cv2.CAP_PROP_FPS:获取视频的帧率(Frames Per Second)。cv2.CAP_PROP_FRAME_WIDTH:获取视频帧的宽度。cv2.CAP_PROP_FRAME_HEIGHT:获取视频帧的高度。cv2.CAP_PROP_FRAME_COUNT:获取视频的总帧数。
3. 示例代码解析
video = cv2.VideoCapture('video.mp4'):打开视频文件video.mp4。video.get(cv2.CAP_PROP_FPS):获取视频的帧率。video.get(cv2.CAP_PROP_FRAME_WIDTH)和video.get(cv2.CAP_PROP_FRAME_HEIGHT):分别获取视频帧的宽度和高度。video.get(cv2.CAP_PROP_FRAME_COUNT):获取视频的总帧数。video.release():释放视频对象,关闭视频文件。
4. 注意事项
- 确保视频文件路径正确,否则
cv2.VideoCapture会返回None。 - 在获取属性之前,确保视频文件已成功打开。
- 使用完
cv2.VideoCapture对象后,务必调用release()方法释放资源。