您的位置:首页 > 文旅 > 美景 > 官网推广计划_计算机专业主要学什么课程_seo网站排名优化案例_提升神马关键词排名报价

官网推广计划_计算机专业主要学什么课程_seo网站排名优化案例_提升神马关键词排名报价

2025/4/24 5:21:56 来源:https://blog.csdn.net/2301_76165902/article/details/143995221  浏览:    关键词:官网推广计划_计算机专业主要学什么课程_seo网站排名优化案例_提升神马关键词排名报价
官网推广计划_计算机专业主要学什么课程_seo网站排名优化案例_提升神马关键词排名报价

一、工具

ubuntu18.04

ROS+opencv2

编译器:Visual Studio Code

二、原理

图像信息

ROS数据形式:sensor_msgs::Image

OpenCV数据形式:cv:Mat

通过cv_bridge()函数进行ROS向opencv转换

cv_bridge是在ROS图像消息和OpenCV图像之间进行转换的一个功能包。

ros->opencv

cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8);

可以在回调函数里进行转换

    cv_bridge::CvImagePtr cv_ptr;try{cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8);}catch (cv_bridge::Exception& e){ROS_ERROR("cv_bridge exception: %s", e.what());return;}

 将ROS图像消息转换在OpenCV中使用,可以进行图像处理和opencv操作。

opencv->ros

使用toImageMsg()成员函数

try
{msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", frame).toImageMsg();  
}catch (cv_bridge::Exception& e)
{ROS_ERROR("cv_bridge exception:%s",e.what());
}

 驱动相机

通过opencv直接打开相机0,vieo_device为video0

 VideoCapture cap(video_device);  //dev/video0if(!cap.isOpened())   {  ROS_ERROR("Can not opencv video device\n");  return 1;  }  

话题发布

ROS中标准的消息订阅和发布方式为

ros::NodeHandle nh;
ros::Subscriber sub = nh.subscribe("topic", 1, Callback);
ros::Publisher pub = nh.advertise<sensor_msgs::Image>("topic", 1);

只会发布单一话题

使用image_transport进行发布话题

ros::NodeHandle nh;
image_transport::ImageTransport it(nh);
image_transport::Subscriber sub = it.subscribe("topic", 1, Callback);
image_transport::Publisher pub = it.advertise("topic", 1);

 这种方式会发布一系列话题

 然后将转换后的图像发布即可

三、使用

在摄像头画面加一个圆并发布出去

通过rqt_image_view查看话题

这里只进行简单的使用,后续可以通过opencv进行颜色识别,轮廓识别等等,以及人脸数字识别,将所有的opencv项目通过ROS包装起来。

这里附上源码链接

https://github.com/jiezz12/Opencv_ros.giticon-default.png?t=O83Ahttps://github.com/jiezz12/Opencv_ros.git

参考:

http://wiki.ros.org/image_transport

https://my.oschina.net/u/4273421/blog/3587403

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com