我尝试使用python opencv播放视频文件这是我的代码,但是当我运行代码时它没有显示vidfeo文件
import numpy as np
import cv2
cap = capture =cv2.VideoCapture('C2.mp4')
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
cv2.waitKey(1)
cap.release()
cv2.destroyAllWindows()
我在link尝试了答案,但没有再次使用
答案 0 :(得分:2)
我认为你只需要将cv2.waitKey()函数中的数字增加到25或30.你应该得到所需的结果。
此外,没有必要写cap = capture = cv2 .......
简单地说,写作,
cap = cv2.videoCapture('视频路径')
应该也可以。希望它有效。
答案 1 :(得分:1)
这段代码对我有用。它显示原始和灰度视频输出。按' q'退出。我也没有看到代码中需要cap = capture ....
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',frame)
cv2.imshow('grayF',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
答案 2 :(得分:1)
import numpy as np
import cv2
cap = cv2.VideoCapture('C2.mp4')
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', gray)
# & 0xFF is required for a 64-bit system
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
答案 3 :(得分:0)
尝试使用此
cv.CaptureFromFile()
答案 4 :(得分:0)
首先,不需要捕获,因为您不在代码中使用捕获。视频文件未显示的原因是您尚未将其保存在保存代码的同一目录中。
您可以如下所示提供保存文件的路径
db.role.aggregate([
{ "$addFields": { "userId": { "$toString": "$_id" }}},
{ "$lookup": {
"from": "user",
"localField": "userId",
"foreignField": "userId",
"as": "output"
}}
])
同样,您需要在waitKey内更改参数,否则程序将无法关闭正确显示视频的窗口。
尝试以下方法,它肯定会起作用。在带有waitKey()函数的if语句中添加一个参数,该参数指示等待键功能的毫秒数为25或您可能想要的任何数字,这样,当您按ESC键时,该窗口将被破坏:>
cap = cv2.VideoCapture('(path to the video file)/cv2.mp4')
答案 5 :(得分:0)
我的代码中的问题出在(While)部分。应该是(True)而不是代码中的那个
答案 6 :(得分:-2)
ren opencv_ffmpeg.dll
,则在您的项目目录 opencv_ffmpeg2413.dll
至opencv-2.4.13.exe