使用的是realsense d435,他的图像节点是/camera/color/image_raw.本文主要是写一个节点订阅这个
节点代码如下:
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <opencv2/highgui/highgui.hpp>
#include <cv_bridge/cv_bridge.h>
void imageCallback(const sensor_msgs::ImageConstPtr& msg)
{
//sensor_msgs::Image ROS中image传递的消息形式
try
{
cv::imshow("view", cv_bridge::toCvShare(msg, "bgr8")->image);
cvWaitKey(3);
}
catch (cv_bridge::Exception& e)
{
ROS_ERROR("Could not convert from '%s' to 'bgr8'.", msg->encoding.c_str());
}
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "image_sub_node");
ros::NodeHandle nh;
cv::namedWindow("view");
cv::startWindowThread();
image_transport::ImageTransport it(nh);
image_transport::Subscriber sub = it.subscribe("/camera/color/image_raw", 1, imageCallback);
ros::spin();
cv::destroyWindow("view"); //窗口
}
节点订阅参考的这个链接:https://blog.csdn.net/qq_31918961/article/details/80517547
cmakelist.txt编写修改参者这个链接:https://blog.csdn.net/ding977921830/article/details/70168877
ROS创建工作区方法如下:
参考链接:https://www.cnblogs.com/blue35sky/p/6078771.html
opencv未定义引用解决方法: