博客
关于我
ROS:OpenCV canny边缘检测
阅读量:332 次
发布时间:2019-03-04

本文共 1710 字,大约阅读时间需要 5 分钟。

#include 
#include
#include
#include
#include
using namespace cv;//包含cv命名空间int main(int argc, char** argv){ ros::init(argc, argv, "canny_proc_node"); ros::NodeHandle nh; cv::VideoCapture capture(0); //0为读取摄像头,“video.format"为读取本地视频 if (!capture.isOpened()) { ROS_ERROR_STREAM("Failed to open video device\n"); ros::shutdown(); } Mat edges; //image_transport负责订阅和发布 image_transport::ImageTransport it(nh); image_transport::Publisher pub_image = it.advertise("canny_proc", 1); while (ros::ok()) { Mat frame; capture >> frame; //载入 if (frame.empty()) { ROS_ERROR_STREAM("Failed to capture image!"); ros::shutdown(); } cvtColor(frame, edges, CV_BGR2GRAY); blur(edges, edges, Size(7, 7)); Canny(edges, edges, 0, 30, 3); //将图像从cv::Mat类型转化成sensor_msgs/Image类型并发布 pub_image.publish(cv_bridge::CvImage(std_msgs::Header(), "mono8", edges).toImageMsg()); //将图像从sensor_msgs/Image类型转化成cv::Mat类型 /* cv_bridge可以有选择的对颜色和深度信息进行转化。为了使用指定的特征编码,就有下面集中的编码形式: mono8: CV_8UC1, 灰度图像 mono16: CV_16UC1,16位灰度图像 bgr8: CV_8UC3,带有颜色信息并且颜色的顺序是BGR顺序 rgb8: CV_8UC3,带有颜色信息并且颜色的顺序是RGB顺序 bgra8: CV_8UC4, BGR的彩色图像,并且带alpha通道 rgba8: CV_8UC4,CV,RGB彩色图像,并且带alpha通道 */ imshow("canny", edges); waitKey(3); // opencv刷新图像 3ms } ros::spin();}

在CMakeLists.txt中添加

find_package(OpenCV REQUIRED)
target_link_libraries(cannyproc  ${catkin_LIBRARIES}  ${OpenCV_LIBRARIES})

Q:命名空间的使用using namespace cv;

不清楚为什么,在未添加命名空间cv情况下使用cv::blur会编译错误,而添加了上述命名空间的声明后正常。望解答

转载地址:http://waxq.baihongyu.com/

你可能感兴趣的文章
MySQL索引底层:B+树详解
查看>>
Mysql索引总结
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
mysql经常使用命令
查看>>
MySQL缓存使用率超过80%的解决方法
查看>>
Mysql缓存调优的基本知识(附Demo)
查看>>
mysql网站打开慢问题排查&数据库优化
查看>>
mysql自动化同步校验_Shell: 分享MySQL数据同步+主从复制自动化脚本_20190313_七侠镇莫尛貝...
查看>>
mysql自增id超大问题查询
查看>>
MySQL获取分组后的TOP 1和TOP N记录
查看>>
MySQL蜜罐反制获取攻击者信息
查看>>
Mysql表创建外键报错
查看>>
mysql表格调取数据库信息_MySQL™ 参考手册(获取有关数据库和表的信息)
查看>>
MySQL视图
查看>>
mysql视图建立MERGE算法和TEMPTABLE算法的区别(效率与表锁定问题)
查看>>
MySQL设置白名单限制
查看>>
MySQL设置远程连接
查看>>
Mysql账号权限查询(grants)
查看>>
MySQL迁移到达梦:如何轻松、高质量完成迁移任务
查看>>
mysql返回的时间和实际数据存储的时间有误差(java+mysql)
查看>>