我正试图从视频文件中抓取图像,但我无法成功打开它,我不知道为什么。
下面是一个打印False
的代码示例,我希望得到True
。我不明白为什么我无法打开这个简单的视频文件,任何领导都会非常感激!
我首先尝试使用相对路径然后移动到绝对路径以查看是否有任何更改并且它仍然是相同的...
video = cv2.VideoCapture()
path = "C:\\Users\\Leo\\Dropbox\\Projet VISORD\\TP3\\video.mpg"
print video.open(path)
答案 0 :(得分:2)
以下代码适用于我:
import cv2
加载视频文件:
capture = cv2.VideoCapture('videos/my_video.avi')
框架是您想要的图像,标志是成功/失败:
flag, frame = capture.read()
循环播放视频的框架:
while True:
flag, frame = capture.read()
if flag == 0:
break
cv2.imshow("Video", frame)
key_pressed = cv2.waitKey(10) #Escape to exit
if key_pressed == 27:
break
但是,MPEG是一种压缩格式,这意味着您需要安装正确的编解码器,并且可能需要做更多工作来处理转换。您可以在OpenCV VideoCodec documentation上阅读支持的不同类型的视频格式。
(但是,如果您只想要一个简单的工作示例,请尝试使用.AVI文件并查看它是否适合您。)
答案 1 :(得分:2)
有类似的问题。尝试更改
path = "C:\\Users\\Leo\\Dropbox\\Projet VISORD\\TP3\\video.mpg"
到
path = "C:/Users/Leo/Dropbox/Projet VISORD/TP3/video.mpg"
看看它是否有效。
答案 2 :(得分:1)
cv2支持开箱即用的编解码器是有限的。一些格式可以在下面的链接中找到。我还没有尝试过它们。
http://opencv.willowgarage.com/wiki/documentation/cpp/highgui/VideoWriter
我对mp42编解码器运气不错。不得不将我的相机的mp4(h264)格式转换为正确格式的avi。
目前使用工具ffmpeg。
ffmpeg -i input.mp4 -codec:v msmpeg4v2 output.avi
由于失去了解决方案,这仍然有待改进,因此我正努力寻求更好的解决方案。我自己才开始这样做。