Ubuntu16.04 不使用ROS自带的OpenCV

Ubuntu16.04 不使用ROS自带的OpenCV,第1张

Ubuntu 使用自己安装的OpenCV,不使用默认ROS提供的。

由于ROS自带的OpenCV中不支持opencv_contrib等库,而且在系统中安装了ROS,在cmake编译时自动就会去寻找ROS自带的opencv。即使能够cmake .. 成功,在执行make *** 作时仍然会报错。

具体 *** 作过程: 1、安装cv_bridge

1.1下载

由于我的Ubuntu版本为16.04,对应的ROS版本为kinetic,下面我给出该版本的下载链接

kinetic-cv_bridge阿里云下载链接 提取码: p06k

如果Ubuntu为其他版本,请从以下链接的分支中选取适合自己版本的cv_bridge。

GIthub链接

下载后,可以将其放置在/home/用户名/ 文件夹下,当然其他的也可以,然后执行以下 *** 作

cd /home/syd/cv_bridge

1.2修改CMakeLists.txt,只需要修改两行

#这几行是原来就有的
find_package(OpenCV 3 REQUIRED
  COMPONENTS
    opencv_core
    opencv_imgproc
    opencv_imgcodecs
  CONFIG
)
#在其上方添加一行  这里是自己安装的opencv的路径
set(OpenCV_DIR "/home/syd/opencv")
#并修改第一行,这里是自己安装的opencv版本
find_package(OpenCV 3.4.10 REQUIRED
  COMPONENTS
    opencv_core
    opencv_imgproc
    opencv_imgcodecs
  CONFIG
)

1.3安装

注意:还是在/home/syd/cv_bridge目录下,顺序执行以下命令:

CMAKE_INSTALL_PREFIX=/usr/local/cv_bridge-3.4.10 这里是安装路径,可以自行修改

mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr/local/cv_bridge-3.4.10 ..
sudo make -j8
sudo make install

很快就会安装完毕!

2、使用

下面就可以使用自己安装的opencv版本了,可以在CMakeLists.txt中添加以下内容:

#这里的路径是上一步安装的路径
set(cv_bridge_DIR /usr/local/cv_bridge-3.4.10/share/cv_bridge/cmake)
#设置opencv路径
SET(OpenCV_DIR  "/home/syd/opencv")
#版本号
find_package(OpenCV 3.4.10 REQUIRED)

这样就可以顺利的进行编译了,同时也可以使用opencv_contrib库了。

到此就结束了。。。

如果还在ROS工程有需要的话,可以添加以下内容:(有些包可能在编译的时候会报错,如果不需要的话,可以将其注释掉,比如camera_models

find_package(catkin REQUIRED COMPONENTS
    message_generation
    message_runtime
    roscpp
    std_msgs
    geometry_msgs
    nav_msgs
    tf
    cv_bridge #添加
    #camera_models
    image_transport
    nodelet
    message_filters
)

笔者水平有限,若有不足之处,请多多包涵 !

参考

ROS工程不使用ROS自带的OpenCV
Ubuntu16.04安装ROS Kinetic详细过程

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1295412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存