ROS机器人开发学习记录2——通过opencv读入本地图像并显示

使用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 //catkin为工作空间的命名

该程序代码如下所示,已做好重要注释

#include<ros/ros.h> //ros标准库头文件
#include<iostream> //C++标准输入输出库
//OpenCV2标准头文件
#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");  //ros初始化
    Mat src=imread("/home/xiaohu/图片/manbuzhe.jpg",1);  //1表示读取的是彩色图像
    imshow("src",src);
    waitKey(0);
}

程序运行命令(在工作空间catkin文件夹下)

rosrun robot_vision getimage  //robot_vision为程序包

运行结果

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值