OpenCV 2.4.9 VideoCapture()无法在热心的python2.7环境中读取视频文件

2024-09-29 17:20:04 发布

您现在位置:Python中文网/ 问答频道 /正文

让opencv2.4.9使用python读取(和显示)视频文件时遇到了一些问题。我知道找到这个文件不是问题,因为我能够让cv2.imread()从同一个目录读取图像。这肯定是cv2.VideoCapture()的问题。以下是我得到的代码和输出:

import cv2
import numpy as np

    testvid = cv2.VideoCapture('testvid.avi')

while(1):
    ret, frame = testvid.read()
    print ret

    cv2.imshow('frame',frame)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break

testvid.release()
cv2.destroyAllWindows()

输出:

^{pr2}$

我知道有好几个人也有同样的问题。 This thread和{a2}都通过说必须重命名opencv来解决这个问题_ffmpeg.dll文件以适合您的版本,并将其复制到python主目录或路径中的目录(或类似的东西)。在

但是,我使用的是pythown2.7.13(根据我教授的推荐),库和包的设置路径和方式似乎与其他线程完全不同。enthough使用了一个包管理器,可以自动下载并为我设置OpenCV。没有Python目录。每件事都是经过深思熟虑的。经过一番挖掘,我找到了所有OpenCV.dll的位置,包括OpenCV_ffmpeg249_64.dll:

C:\Users\USERNAME\AppData\Local\Enthought\Canopy\edm\pkgs\03\9d58e152b8f411718220c30639b8448585cb7d9a82de662c7e34b35d9ec1f6

那我该怎么办?在哪里复制.dll?.dll是问题所在吗?我尝试了很多方法,包括把它复制到各种地方和重命名.dll,但都没有奏效。救命啊!在


Tags: 文件图像import路径目录cv2frameopencv
3条回答

为了解决您的问题,我建议您从头开始并执行以下步骤:

1-在您的机器上安装一个新的标准版本的python3

2-下载获取-点对点来自https://bootstrap.pypa.io/get-pip.py的文件

3-打开终端和cd到下载get的文件夹-点对点文件

4-然后在终端上输入python3 get-pip.py,以便安装pip

5-一旦安装了pip,您就可以通过在终端上输入pip install cmake来安装cmake

6-现在转到https://github.com/opencv/opencv并下载opencv的整个存储库

7-在终端cd上下载opencv存储库的文件夹中,并使用cmake类型进行编译

mkdir release

cd release

cmake -D CMAKE_BULD_TYPE=RELEASE -D BUILD_PYTHON_SUPPORT=ON USE_V4L=ON WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON USE_GStreamer=ON ..

make

make install

8-现在cd到你的脚本.py的位置,您应该能够在终端上无问题地执行脚本python3 yourscript.py

如果这能解决问题,请告诉我

希望这有帮助

问题(至少在我没有测试文件的情况下)是,您的代码在testvid.read()之后未能检查ret的值。当这个调用返回False时,就没有更多的帧要显示了,所以不出意外,imshow()将失败。在

不要在包管理器专用缓存目录下做任何事情,如果你搞砸了,谁知道你会破坏什么。您的Canopy python环境位于Canopy\edm\envs\User中。在

如果不做进一步的调查,我不知道您的脚本是否应该在Python2.7中运行,但是如果您想按照第一个答案的建议尝试使用Python3.5,那么可以按照以下说明在Canopy安装中轻松地安装Python3.5环境:http://docs.enthought.com/canopy/configure/python-environments.html

相关问题 更多 >

    热门问题