opencv`cv2` python模块中缺少CAP_PROP_FRAME_COUNT常量

问题描述 投票:8回答:5

如何从python中的opencv访问CAP_PROP_FRAME_COUNT?我试过这个:

import cv2
cap = cv2.VideoCapture('myvideo.avi')
frames_count, fps, width, height = cap.get(cv2.CAP_PROP_FRAME_COUNT), cap.get(cv2.CAP_PROP_FPS), cap.get(cv2.CAP_PROP_FRAME_WIDTH), cap.get(cv2.CAP_PROP_FRAME_HEIGHT)

还有这个:

import cv2
import cv
cap = cv2.VideoCapture('myvideo.avi')
frames_count, fps, width, height = cap.get(cv.CAP_PROP_FRAME_COUNT), cap.get(cv.CAP_PROP_FPS), cap.get(cv.CAP_PROP_FRAME_WIDTH), cap.get(cv.CAP_PROP_FRAME_HEIGHT)

还有这个:

import cv2
cap = cv2.VideoCapture('myvideo.avi')
frames_count, fps, width, height = cap.get(cv2.cv.CAP_PROP_FRAME_COUNT), cap.get(cv2.cv.CAP_PROP_FPS), cap.get(cv2.cv.CAP_PROP_FRAME_WIDTH), cap.get(cv2.cv.CAP_PROP_FRAME_HEIGHT)

但是我收到了这个错误:

AttributeError: 'module' object has no attribute 'CAP_PROP_FRAME_COUNT'

我正在使用python 2.7.5和OpenCV 2.4.9。

python opencv video-capture attributeerror
5个回答
15
投票

第一版OpenCV python模块中的常量有一个CV_前缀。因此你可以使用cv.CV_CAP_PROP_FRAME_COUNTcv2.cv.CV_CAP_PROP_FRAME_COUNT


12
投票

在OSX上运行macports时(opencv @ 3.0.0_1 + python27 + tbb)

您可以使用以下内容获取CAP_PROP_FRAME_HEIGHT和CAP_PROP_FRAME_WIDTH:

#!/opt/local/bin/python
import cv2 
vcap = cv2.VideoCapture()
# set frame width and height
vcap.set(cv2.CAP_PROP_FRAME_WIDTH, 480)
vcap.set(cv2.CAP_PROP_FRAME_HEIGHT, 640)
vcap.open(0)

2
投票

http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-get

#3. CV_CAP_PROP_FRAME_WIDTH
print "\t CAP_PROP_FRAME_WIDTH:     ",cap.get(3)
#4. CV_CAP_PROP_FRAME_HEIGHT
print "\t CAP_PROP_FRAME_HEIGHT:    ",cap.get(4)

http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-set

#3. CV_CAP_PROP_FRAME_WIDTH
cap.set(3,320)
#4. CV_CAP_PROP_FRAME_HEIGHT
cap.set(4,240)

1
投票

在OpenCV 2.x中,这些属性以CV_...开头的CV_CAP_PROP_FRAME_COUNT命名。

在OpenCV 3.x和OpenCV 4.x中,这些属性的命名没有像CV_...这样的CAP_PROP_FRAME_COUNT


0
投票
import cv2

import cv2.cv as cv

Using cv2:

stream = cv2.VideoCapture(filename)

print stream.get(cv.CV_CAP_PROP_FRAME_COUNT)
© www.soinside.com 2019 - 2024. All rights reserved.