Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux OpenCV 1.0:cvCreateFileCapture在Fedora 11下始终返回Null_Linux_Opencv - Fatal编程技术网

Linux OpenCV 1.0:cvCreateFileCapture在Fedora 11下始终返回Null

Linux OpenCV 1.0:cvCreateFileCapture在Fedora 11下始终返回Null,linux,opencv,Linux,Opencv,我试图在Fedora11系统上使用openCV 1.0的highgui.cvCreateFileCapture(path)函数打开一个视频文件。不幸的是,这个函数总是返回null。我尝试在几种不同的视频格式上使用它,甚至采取了openCV wiki()上推荐的步骤,使用mencoder将代码转换为RAWI420,如下所示: $ mencoder in.avi -ovc raw -vf format=i420 -o out.avi 这似乎没有效果,所以我有点卡住了。不会产生错误,返回null(

我试图在Fedora11系统上使用openCV 1.0的highgui.cvCreateFileCapture(path)函数打开一个视频文件。不幸的是,这个函数总是返回null。我尝试在几种不同的视频格式上使用它,甚至采取了openCV wiki()上推荐的步骤,使用mencoder将代码转换为RAWI420,如下所示:

$ mencoder in.avi -ovc raw -vf format=i420 -o out.avi 

这似乎没有效果,所以我有点卡住了。不会产生错误,返回null(或者,因为我使用的是python包装器,所以没有)。我已经安装了ffmpeg、ffmpeg-devel和ffmpeg-libs,所以我认为我应该有适当的编解码器支持。是否有人知道如何解决此问题,或者可以采取哪些步骤来调试此问题来代替解决方案?

这取决于您如何安装OpenCV。OpenCV可以使用多种不同的引擎之一来读取视频文件,包括ffmpeg、gstreamer和xine(我相信)。确保您的安装确实使用ffmpeg作为引擎。我能想到的最简单的方法是调用“ldd programname”,并查看ffmpeg是否列为依赖项之一。此外,您需要确保引擎能够处理您的视频编解码器


不幸的是,OpenCV对导致错误的原因讳莫如深。返回NULL可能意味着“无法处理编解码器”,也可能意味着“访问被拒绝”。您可以通过strace运行您的进程,并查看系统调用返回的内容,这是一个可能的选项。最坏的情况是,在调用cvCreateFileCapture时,需要使用调试器并遍历代码。希望这有帮助。

OpenCV已经在2.x版上了


帮你自己一个忙,把它更新到2.1版(至少)

我在Ubuntu 10.10上遇到了这个问题,对我来说这是库的问题。我无法找出哪个库丢失了,但我发现在编译OpenCV之前执行OpenFramework的安装脚本是可行的

请不要用这只恐龙。