从文件中捕获OpenCV视频赢得';我打不开 我用OpenCV库(2.4.6)在C++(VS2012)中编写了这个。 #包括 #包括 int main(){ Mat图像; 视频捕捉帽; cap.open(“test.avi”); 如果(!cap.isOpened()){ cout>图像; imshow(“视频输出”,图像); 等候室(30); } }

从文件中捕获OpenCV视频赢得';我打不开 我用OpenCV库(2.4.6)在C++(VS2012)中编写了这个。 #包括 #包括 int main(){ Mat图像; 视频捕捉帽; cap.open(“test.avi”); 如果(!cap.isOpened()){ cout>图像; imshow(“视频输出”,图像); 等候室(30); } },c++,opencv,C++,Opencv,运行它时,视频捕获无法打开。 test.avi与可执行文件位于同一目录中,在IDE之外的Debug/Release/中运行它并没有什么区别。 OpenCv DLL和视频文件如下所示: 我可能做错了什么 编辑:正如OpenCV问答网站上的问题所示,我已将OpenCV_ffmpeg DLL复制到包含可执行文件的文件夹中。现在它只在IDE(VS2012)之外工作您应该在targetDir中复制opencv_ffmpeg DLL,在这种情况下是调试可执行文件文件夹,而不是发行版文件夹您尝试过其他视频文件

运行它时,视频捕获无法打开。 test.avi与可执行文件位于同一目录中,在IDE之外的Debug/Release/中运行它并没有什么区别。 OpenCv DLL和视频文件如下所示: 我可能做错了什么


编辑:正如OpenCV问答网站上的问题所示,我已将OpenCV_ffmpeg DLL复制到包含可执行文件的文件夹中。现在它只在IDE(VS2012)之外工作

您应该在targetDir中复制opencv_ffmpeg DLL,在这种情况下是调试可执行文件文件夹,而不是发行版文件夹

您尝试过其他视频文件吗?可能是文件有问题,“无法打开”这是什么意思?它是否给出了任何错误消息,请描述。正如Mailerdaimon建议的,请尝试另一个视频文件。我最近尝试了一些视频代码,不得不搜索一段时间,直到我在网上找到了一个有效的免费视频。请从中尝试
StopMoti2001.mpeg
,我已经尝试了其他avi和.mov文件,现在我将尝试此文件。我所说的无法打开是指cap.isOpened()返回false,然后imshow()引发异常,因为前一行中返回的图像分辨率为0x0
#include <opencv2\opencv.hpp>
#include <opencv2\highgui\highgui.hpp>    
int main(){
    Mat image;
    VideoCapture cap;
    cap.open("test.avi");
    if(!cap.isOpened()){
        cout<< "Capture not open \n";
        cin.get();
    }
    cvNamedWindow("Video Output");
    while(1){
        cap >> image;
        imshow("Video Output",image);
        waitKey(30);
    }
}