您的位置:首页 > 运维架构

ROS下opencv不能读取本地视频的解决方案

2011-06-12 19:26 344 查看
ROS下opencv不能读取本地视频的解决方案

因为项目需要,我需要把windows下的代码转移到ROS下,可是在转移的过程中,出现了一个非常让人头疼的问题,就是作测试的时候,ROS下的openCV不支持读取本地视频。找了很多方法。都解决不了,被逼无奈,只好到ROS官网去寻求答案。

这里是我发问的贴:http://answers.ros.org/question/1197/opencv-cant-be-used-in-ros,thanks to Eric Perko.
这里我把问题的详细情况在说下,希望对后来者一点帮助。
问题描述:ROS下OPENCV不能很好的读取摄像头或者本地视频。
问题根源:没有装ffmpeg,另外ROS默认的opencv也是不支持ffmpeg,1394,v4l等关于视频的接口。
问题解决方案:
第一,确认安装好ffmpeg,安装过程,我也写道我博客里,具体方法见http://blog.sina.com.cn/s/blog_661159d50100o7or.html
第二,修改ROS下opencv的Makefile文件,默认ros是装在/opt/ros/diamoadback/stacks/vision_opencv/opencv2下。/opt下文件,可以用sudo 修改,但是不好编译,所以我把vision_opencv拷贝我自己的stacks中,
比如 /opt/ros/diamoadback/stacks/vision_opencv/opencv2 :~$ sudo cp -fr vision_opencv ~/stacks
拷贝到home区后,修改makefile,比如:

CMAKE_ARGS = -D CMAKE_BUILD_TYPE=RELEASE / -D CMAKE_INSTALL_PREFIX=`rospack find opencv2`/$(INSTALL_DIR) / -D BUILD_EXAMPLES=ON / -D BUILD_NEW_PYTHON_SUPPORT=ON / -D BUILD_SWIG_PYTHON_SUPPORT=OFF / -D WITH_FFMPEG=OFF / -D WITH_XINE=OFF / -D WITH_1394=OFF / -D WITH_V4L=OFF / -D BUILD_DOXYGEN_DOCS=OFF

修改为:


CMAKE_ARGS = -D CMAKE_BUILD_TYPE=RELEASE / -D CMAKE_INSTALL_PREFIX=`rospack find opencv2`/$(INSTALL_DIR) / -D BUILD_EXAMPLES=ON / -D BUILD_NEW_PYTHON_SUPPORT=ON / -D BUILD_SWIG_PYTHON_SUPPORT=OFF / -D WITH_FFMPEG=ON / -D WITH_XINE=OFF / -D WITH_1394=ON / -D WITH_V4L=ON / -D BUILD_DOXYGEN_DOCS=OFF

然后 $ make
之后,重新编译$ rosmake 相应的package,就可以运行读取本地视频。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: