gpt4 book ai didi

Python - OpenCV VideoCapture = False (Windows)

转载 作者:可可西里 更新时间:2023-11-01 09:33:09 25 4
gpt4 key购买 nike

我有一段简单的代码,用 Python(版本 2.7.11)编写,旨在对视频文件执行如下操作:

import cv2

cap = cv2.VideoCapture('MyVideo.mov')
print(cap)
print(cap.isOpened())

while(cap.isOpened()):
#Do some stuff

print(cap) 的结果是一个 8 位十六进制数,所以我不知道这是否意味着视频已找到。

但是,cap.isOpened() 的打印语句返回 False。我尝试了几种修复方法,但都没有奏效。任何帮助或见解都会非常有帮助。

注意事项/我尝试过的事情

  • 我正在运行 Windows 8.1、Python 2.7.11 和 OpenCV 3.1.0
  • 视频文件的位置与Python脚本在同一个目录
  • 我将以下目录附加到我的 PATH 变量中:

    C:\Users\MyName\OpenCV3\opencv\build\x64\vc14\bin; 
    C:\Users\MyName\OpenCV3\opencv\sources\3rdparty\ffmpeg;
    C:\Python27\;
    C:\Python27\Scripts
  • 我已检查我在 OpenCV vc14 bin 目录中有 opencv_ffmpeg.dll

  • 我已经检查过该 dll 文件名为 opencv_ffmpeg310_64.dll

  • 我已经尝试重新下载所述 dll 文件,并重命名它以包括 OpenCV 的版本以及我的系统是 64 位的事实

  • 我试过把dll文件放在Python27目录下

  • 上面的代码在 Mac 上有效,但在 Windows 上无效(在 2 台不同的 Mac 上试过代码,它有效,在 2 台不同的 Windows 机器上试过,但两次都返回 false)

最佳答案

如果您使用的是 Windows,那么文件很可能位于 \Users 中。或其他\<something>目录。 \被 python 解释器视为 unicode 转义,后面的内容可能是无效转义。尝试输入 r'<file path>'导致路径被读取为原始文本并忽略 unicode 转义。

尝试添加:

if(not cap.isOpened()):
cap.open(r'<file_path>')

如果是文件路径的问题,很可能会出错。或者,您可以只使用这样的循环:

while(True):
# Capture frame-by-frame
ret, frame = cap.read()
#if frame can't be read
if ret==False:
print('end of input or incompatible video file')
break
cv2.imshow('frame',frame)
#if esc key pressed
if cv2.waitKey(1) & 0xFF == 27:
break


cv2.destroyAllWindows()
cap.release()

关于Python - OpenCV VideoCapture = False (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35779370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com