使用opencv和ros实现彩色图的读入和显示
为了实现该功能,我使用了以下主要函数,先对这些函数的功能做简要记录:
(1)Mat obj = imread(“本地图像路径(实例:F:\\program\\Image\1.jpg)”),该函数中,Mat是一个变量类型,类似C语言中的int、char、float,旨在创建一个数值型数组,类似一个矩阵,将图像的灰度值或者RGB值存储到名为obj的数组中,imread载入路径中的目标图像并存储。
(2)imshow(“img”,obj),用于显示存在obj中的图像,显示名为img。
(3)imwrite("目标路径”,obj),该函数用于将obj中存储的图像存在目标路径中,在此例中没有用到,仅作记录。
在程序包文件夹下输入以下命令,创建cpp源文件
sudo gedit 程序名(此例中我起的程序名为getimage.cpp,注意一定要有cpp的后缀,否则只是创建了一个普通的文本文件)
保存程序后,需在程序包的CMakeLists.txt结尾加入
add_executable(getimage src/getimage.cpp)
target_link_libraries(getimage ${catkin_LIBRARIES} ${OpenCV_LIBS})
这样在编译功能包时才能找到源文件,然后就可以编译源文件啦
cd ~/catkin_ws
catkin_make
该程序代码如下所示,已做好重要注释
#include<ros/ros.h>
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main(int argc, char** argv)
{
ros::init(argc, argv, "RGB");
Mat src=imread("/home/xiaohu/图片/manbuzhe.jpg",1);
imshow("src",src);
waitKey(0);
}
程序运行命令(在工作空间catkin文件夹下)
rosrun robot_vision getimage
运行结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)