OpenCV VideoCapture cannot read video in Python bu

2019-01-24 17:14发布

问题:

As title, I am not able to read video using VideoCapture in python with the following code:

v = 'C:\\test.mp4'
import cv2
cap = cv2.VideoCapture(v)
if cap.isOpened():
  print "Finally"
else:
  print "BOOM"

BOOM is always being printed. sigh

Whereas in VS11, the following code works:

#include "stdafx.h"

#include <opencv2\highgui\highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char* argv[])
{
    string v = "C:\\test.mp4";
    VideoCapture cap;
    cap.open(v);
    if (cap.isOpened()) {
        cout << "Yes!" << endl;
    } else {
        cout << "BOOM" << endl;
    }

    return 0;
}

I do realize there's a number solution in SO, but nothing works for me. I have the following dlls in C:\Python27 and C:\Python27\DLLs, as well as in PATH

  • opencv_ffmpeg.dll
  • opencv_ffmpeg_64.dll
  • opencv_ffmpeg_245_64.dll
  • opencv_ffmpeg_245.dll

I have no more idea what have not done.

Please help me. Thank you very much.

回答1:

I have solved the problem by installing the binaries from this download link provided by this answer.

It copied all opencv DLLs to C:\Python27 (or maybe other files). But I don't understand why it wouldn't work earlier as I have already included those DLLs into my PATH