ROS Kinetic中OpenCV使用
本文主要记录了ROS Kinetic中OpenCV的使用,Kinetic完全安装中本身自带了Opencv3.3.1,因此在ROS中可以直接用ROS自带的Opencv3.3.1,也可以使用自己源码编译的Opencv,区别只是在头文件中包含路径以及CMakeLists.txt的target_link_libraries
里面。 下面分别记录两种:
1. ROS自带的OpenCV使用
在工程中包含头文件
#include <opencv-3.3.1/opencv2/core.hpp>
#include <opencv-3.3.1/opencv/highgui.h>
#include <opencv-3.3.1/opencv2/opencv.hpp>
然后在CMakeLists.txt中需要包含ROS自带的Opencv package,内容如下:
find_package(catkin REQUIRED COMPONENTS
roscpp
OpenCV
nav_msgs
actionlib
actionlib_msgs
move_base_msgs
sensor_msgs
)
include_directories(
include
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
target_link_libraries(your_exe_name
${catkin_LIBRARIES}
${OpenCV_LIBRARIES}
)
2.使用自己源码编译的Opencv
在工程中包含头文件
#include <opencv2/core.hpp>
#include <opencv/highgui.h>
#include <opencv2/opencv.hpp>
在CMakeLists.txt中需要包含自己源码编译的Opencv
find_package(catkin REQUIRED COMPONENTS
roscpp
OpenCV
nav_msgs
actionlib
actionlib_msgs
move_base_msgs
sensor_msgs
)
include_directories(
include
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
target_link_libraries(your_exe_name
${catkin_LIBRARIES}
${OpenCV_LIBS}
)
下面给出一个完整的CMakeLists.txt供大家参考:
cmake_minimum_required(VERSION 2.8.3)
project(your_project_name)
add_compile_options(-std=c++11)
find_package(catkin REQUIRED COMPONENTS
roscpp
OpenCV
nav_msgs
actionlib
actionlib_msgs
move_base_msgs
sensor_msgs
)
catkin_package(
)
include_directories(
include
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
add_executable(your_exe_name
src/your_cpp1.cpp
src/your_cpp2.cpp
include/your_node_name/your_cpp1.h
include/your_node_name/your_cpp1.h
src/main.cpp
)
add_dependencies(your_exe_name
${${PROJECT_NAME}_EXPORTED_TARGETS}
${catkin_EXPORTED_TARGETS})
target_link_libraries(your_exe_name
${catkin_LIBRARIES}
${OpenCV_LIBS}
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)