windows中的VideoCapture OpenCV 2.4.2错误
我在WindowsXP32位下使用OpenCV 2.4.2的VideoCapture类时遇到问题。 它不会打开任何文件或相机,修复它是一件痛苦的事情。 我正在使用VisualStudio2010,但我也尝试了QTcreator中的代码,得到了相同的结果 测试代码如下所示:windows中的VideoCapture OpenCV 2.4.2错误,opencv,Opencv,我在WindowsXP32位下使用OpenCV 2.4.2的VideoCapture类时遇到问题。 它不会打开任何文件或相机,修复它是一件痛苦的事情。 我正在使用VisualStudio2010,但我也尝试了QTcreator中的代码,得到了相同的结果 测试代码如下所示: #include "opencv/cv.h" #include "opencv/highgui.h" #include <iostream> #include <string> #include &l
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include <iostream>
#include <string>
#include <iomanip>
#include <sstream>
using namespace cv;
using namespace std;
int main()
{
const char* videoPath = "C:/video/";
string videoName = string(videoPath) + "avi.avi";
VideoCapture cap(videoName);
if(!cap.isOpened())
{
std::cout<<"Fail"<<std::endl;
return -3;
}
return 0;
}
在cap_ffmpeg.cpp内部文件中
我已经在雪豹下的mac电脑上测试了相同的代码,它可以正常工作。这并不奇怪,因为这一定是图书馆的问题。
我使用c函数cvCapture轻松快速地打开了具有相同路径路径的avi文件。
我得到了“C:\opencv\opencv\build\x86\vc10\bin”的所有DLL
包含在mi调试文件中。我得到了tbb.dll和所有包含的“C:\opencv\opencv\3rdparty\ffmpeg”内容
这让我抓狂,所以任何帮助都将不胜感激
提前感谢。在我的例子中,删除
C:\Windows\System32
中的所有opencv\u***.dll
文件后,同样的问题得到了解决。因此,我仅通过路径使用dll文件,如%path%;C:\Program files\OpenCV2.4.2\build\x86\vc10/bin“
。请试一试 我也遇到了这个问题,通过纠正函数的路径解决了它:
VideoCapture cap(videoName);
如果videoName的AVI文件不存在,则会出现错误:
(../../modules/highgui/src/cap_ffmpeg_impl.hpp:XXX)
其中XXX表示行号。在Windows 8(64位)opencv 2.4.10下运行时,我对open方法有相同的问题。IDE在x86中运行 我发现在版本配置中运行应用程序解决了这个问题 我偶然发现了答案,因为我和imread有同样的问题。这个问题在这个线程中出现。
有关mp4文件,请参阅我在下面找到的修复程序。 我在Windows7上也遇到了同样的问题,使用的是OpenCV 2.4.9。我正在使用opencv的java包装器 Matthias Krings为此做了大量研究。看见显然,这是一个基于视频文件类型的问题。对于.avi文件,它似乎适用于很多人。不幸的是,他设置OPENCV_DIR的解决方案对我不起作用。但是他在bug列表中的评论给了我一个解决问题的提示 你必须做两件事:
java.library.path
以包含目录{opencv\install\dir}opencv-2.4.9\build\x86\vc10\bin
。您可以使用java命令行上的-D
选项设置变量:java-Djava.library.path=path\u TO\u您的DLL…
。还可以使用System.getProperty(…)
从您的环境中获取此变量,并在调用loadLibrary()
之前将其打印出来,以验证路径设置是否有效李>
System.loadLibrary(“opencv_ffmpeg249”)加载ffmpeg dll代码>。应在java中的静态块中调用loadLibrary()
函数李>
在我们设置的java.library.path
中有一个名为opencv\u ffmpeg249.dll的文件李>
这也适用于ubuntu,适用于.so
文件
我也遇到了同样的问题,并在指向输入视频的正确位置后解决了。第一个答案可能是您的情况:尝试将opencv_ffmpeg242d.dll或opencv_ffmpeg242.dll复制到您当前的工作目录。另外,您是否自己构建了OpenCV?你确定所有依赖项都正常吗?我仍然有同样的问题。我在一些论坛上读到,可能需要更新编解码器。我试试看。您解决问题了吗?我(保守地)尝试将所有opencv_*.dll文件移出Windows\System32和Windows\SysWOW64。重新启动,仍然无法工作。拉上DLL的拉链,取出原件;重新启动,效果很好!所以杨世权的建议很好。
(../../modules/highgui/src/cap_ffmpeg_impl.hpp:XXX)