【问题标题】:How to link opencv to ROS indigo (catkin) with CMake (ubuntu 14.04)如何使用 CMake(ubuntu 14.04)将 opencv 链接到 ROS indigo(catkin)
【发布时间】:2016-05-17 10:59:13
【问题描述】:

到目前为止,我无法使用 cv_bridge。我得到这个编译错误

CMake Error at /opt/ros/indigo/share/cv_bridge/cmake/cv_bridgeConfig.cmake:106 (message):
  Project 'cv_bridge' specifies '/usr/include/opencv' as an include dir,
  which is not found.  It does neither exist as an absolute directory nor in
  '/opt/ros/indigo//usr/include/opencv'.  Ask the maintainer ..

可能是我的 CMake 中的问题(...?)

cmake_minimum_required(VERSION 2.8.3)
project(XY)

find_package(catkin REQUIRED COMPONENTS
cv_bridge
image_transport
roscpp
rospy
std_msgs
)

#set(OpenCV_DIR "/usr/local/lib/opencv")
find_package(OpenCV REQUIRED core imgproc highgui PATHS /home/polar/soft/lib/opencv/opencv-3.1.0/cmake)
include_directories( ${OpenCV_INCLUDE_DIRS} )

if(OpenCV_FOUND)
# include_directories(${Boost_INCLUDE_DIRS})
message("\n\n OpenCV found!!!! \n\n")   
endif()

请问您知道问题的原因和解决方法吗? 我以前用的是ROS fuerte,从来没有遇到过这样的问题....

【问题讨论】:

  • 您是否将其添加到package.xml<build_depend>cv_bridge</build_depend><run_depend>cv_bridge</run_depend>
  • 是的。实际上我在创建包时指定了 cv_bridge 的需要
  • 奇怪,试试这个答案stackoverflow.com/questions/36613363/…
  • 似乎无法解决问题
  • 您似乎正在尝试使用 ros indigo 的新 OpenCV 3.1。你尝试使用openCV3 还是你自己安装的?也许使用ros-indigo-opencv3 会更好。不过我自己没试过!

标签: opencv compilation ros


【解决方案1】:

最后,我修改了文件/opt/ros/indigo/share/cv_bridge/cmake/cv_bridgeConfig.cmake

我变了

set(cv_bridge_FOUND_CATKIN_PROJECT TRUE)

if(NOT "include;/usr/include/opencv;/usr/include " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/include/opencv;/usr/include")

set(cv_bridge_FOUND_CATKIN_PROJECT TRUE)
if(NOT "include;/usr/local/include/opencv" STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "/usr/local/include/opencv;/usr/include;/usr/local/include")

实际上我只是将usr/include 更改为/usr/local/include。这解决了我的问题。但我认为这不是正确的做法(?)。

【讨论】:

  • 我得到一个错误,make[2]: *** No rule to make target /usr/lib/x86_64-linux-gnu/libopencv_ts.so.2.4.8', needed by /home/johann/catkin_ws/devel/lib/libimage_converter.so'。停止。按照你的步骤,你有没有类似的情况?
  • 我前段时间遇到过这个问题。我最终清除了所有内容并重新安装了opencv。您是否从源代码安装了 opencv 和 ros(完整桌面)附带的?如果是这样,请删除 ros 并卸载独立的 opencv(使用 sudo make uninstall、make clean 等)。重新安装 ROS 和 opencv。但请注意,使用./configure --prefix=DIFF_PATH 安装opencv,其中DIFF_PATH/usr/* 不同,以避免任何系统混乱。例如。我通常设置DIFF_PATH=~/soft/lib/opencv/build。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2016-09-30
  • 2016-09-14
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-21
  • 2017-05-26
相关资源
最近更新 更多