C++ 支持opencv的VLC编译中出错
我正试图在Ubuntu 13.10上使用opencv支持编译VLC2.0(2.4.6.1版)。编译会产生以下错误:C++ 支持opencv的VLC编译中出错,c++,opencv,vlc,libvlc,C++,Opencv,Vlc,Libvlc,我正试图在Ubuntu 13.10上使用opencv支持编译VLC2.0(2.4.6.1版)。编译会产生以下错误: COMPILE : libopencv_example_plugin_la-opencv_example.lo opencv_example.c: In function 'Filter': ERROR : opencv_example.c:185: 45: too few arguments to function 'cvHaarDetectObjects'
COMPILE : libopencv_example_plugin_la-opencv_example.lo
opencv_example.c: In function 'Filter':
ERROR : opencv_example.c:185: 45: too few arguments to function 'cvHaarDetectObjects'
cvSize(20, 20) );
^
In file included from /usr/local/include/opencv/cv.h:71:0,
from opencv_example.c:41:
/usr/local/include/opencv2/objdetect/objdetect.hpp:139:15: note: declared here
CVAPI(CvSeq*) cvHaarDetectObjects( const CvArr* image,
^
WARNING : opencv_example.c:210: 57: assignment discards 'const' qualifier from pointer target type [enabled by default]
p_sys->event_info.p_region[i].p_description = "Face Detected";
^
make: *** [all] Error 2
有没有人遇到过同样的问题,或者对如何解决它有想法?任何帮助都将不胜感激。opencv支持在过去似乎有缺陷,但问题似乎已经解决了。用示例代码测试opencv库会产生令人满意的结果,所以我猜问题来自VLC…今天面临的同样问题。 打开opencv_example.c或write,找到创建cvhaardeticobjects的行。它始于
CvSeq *faces = cvHaarDetectObjects( p_img[0], ...
将cvHaarDetectObjects的整个声明替换为以下行:
CvSeq *faces = cvHaarDetectObjects( p_img[0], p_sys->p_cascade, p_sys->p_storage,
1.15, 5, CV_HAAR_DO_CANNY_PRUNING, cvSize(0, 0), cvSize(20,20));
这些更改使我的opencv_example.c编译得很好(opencv-2.4.9、vlc-2.0.1、Ubuntu-12.04)只是警告一句,vlc过滤器代码有点基于opencv1.0、c-api,非常过时。另外,您真的想让代码在vlc管道中运行吗?使用libvlc制作某种“模拟”视频捕获对象对我来说似乎是个更好的主意。