Ros kinetic 中自带的OpenCV使用测试

Ros kinetic 中自带的OpenCV使用测试

kinetic自带OpenCV-3.3.1

头文件包括

#include <opencv-3.3.1-dev/opencv2/core.hpp>
#include <opencv-3.3.1-dev/opencv/highgui.h>
#include <opencv-3.3.1-dev/opencv2/opencv.hpp>

CMakeLists.txt 改动

set(OpenCV_DIR /opt/ros/kinetic/share/OpenCV-3.3.1-dev)
find_package(catkin REQUIRED COMPONENTS 
  roscpp
  OpenCV
)
include_directories(
 include
  ${catkin_INCLUDE_DIRS}
  ${OpenCV_INCLUDE_DIRS}
)
target_link_libraries(testing
${catkin_LIBRARIES} 
${OpenCV_LIBRARIES}
)

开始测试

进入~/catkin_ws/src,终端中输入

$ catkin_create_pkg test1 roscpp

在test1/src中创建test.cpp,内容为

#include <stdio.h>
#include <opencv-3.3.1-dev/opencv2/core.hpp>
#include <opencv-3.3.1-dev/opencv/highgui.h>
#include <opencv-3.3.1-dev/opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
   //判断输入参数个数是否合法
   if ( argc != 2 )
   {
	   printf("usage: DisplayImage.out <Image_Path>\n");
	   return -1;
   }
    //读入图像
	Mat image;
	image = imread( argv[1], 1 );
	//判断输入路径下图像是否存在
	if ( !image.data )
	{
		printf("No image data \n");
		return -1;
	}
	//新建一个窗口显示图像
	namedWindow("Display Image", WINDOW_AUTOSIZE );
	imshow("Display Image", image);
	waitKey(0);
	return 0;
}

修改CMakeLists.txt为

cmake_minimum_required(VERSION 2.8.3)
project(test1)
set(OpenCV_DIR /opt/ros/kinetic/share/OpenCV-3.3.1-dev)
find_package(catkin REQUIRED COMPONENTS 
  roscpp
  OpenCV
)

include_directories(
 include
  ${catkin_INCLUDE_DIRS}
  ${OpenCV_INCLUDE_DIRS}
)

add_executable(testing src/test.cpp)
target_link_libraries(testing
${catkin_LIBRARIES} 
${OpenCV_LIBRARIES}
)

运行
在Pictures文件夹下存入图片test.jpg
在终端中运行

$ cd catkin_ws
$ catkin_make
$ source devel/setup.bash
$ rosrun test1 testing /home/myname/Pictures/test.jpg

特别说明

1、cpp中的头文件,路径可能会不一样
2、CMakeLists.txt文件中如果没有

set(OpenCV_DIR /opt/ros/kinetic/share/OpenCV-3.3.1-dev)

会报错:

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

所以要只要添加一个包含 OpenCVConfig.cmake, opencv-config.cmake的路径即可
3、生成的执行文件(程序中的testing)不要命名为test
4、cpp的参数中,argc为运行时输入的参数数量,输入一个参数时为2,
argv为,argv[0]指向输入的运行程序路径及名称
argv[1]指向第一个参数字符串,即图片/home/myname/Pictures/test.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值