当前位置: 首页 > wzjs >正文

武汉政府网站建设网络推广网站排行榜

武汉政府网站建设,网络推广网站排行榜,长春又有疫情了吗,做网站测试 怎么兼容ie9一、前言 区别于之前的直接驱动相机,这里改为读取图像话题进行处理,原因是如果opencv驱动相机后只能单一使用,就限制了其他识别功能(除非将原始图像发布出来),所以这里改成可以读取任意相机图像话题的方法…

一、前言

区别于之前的直接驱动相机,这里改为读取图像话题进行处理,原因是如果opencv驱动相机后只能单一使用,就限制了其他识别功能(除非将原始图像发布出来),所以这里改成可以读取任意相机图像话题的方法,增加实用性。

二、原理

利用image_transport::ImageTransport

void imageCallback(const sensor_msgs::ImageConstPtr& msg)
{// ...
}ros::NodeHandle nh;
image_transport::ImageTransport it(nh);
image_transport::Subscriber sub = it.subscribe(cam_topic, 1, imageCallback);

在回调函数中转化ros图像信息为opencv格式

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

这里frame为Mat形式,相当于opencv的帧

之后就可以对frame进行图像处理了

三、使用

launch文件的使用

<?xml version="1.0"?>
<launch><node pkg="color_detect" name="color_topic" type="color_topic" output="screen"/><param name="image_view" type="bool" value="true"/><param name="cam_topic" type="string" value="/usb_cam/image_raw"/><param name="H" type="int" value="100"/><param name="S" type="int" value="100"/><param name="V" type="int" value="100"/></launch>

通过更改相机话题名称来读取相机图像话题 。

将图像处理的代码放进回调函数,而不是在while中,防止图像处理有延迟和重复。

void imageCallback(const sensor_msgs::ImageConstPtr& msg)
{try{cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8);frame = cv_ptr->image;}catch (cv_bridge::Exception& e){ROS_ERROR("cv_bridge exception: %s", e.what());return;}Scalar lower_red(H - 30, S - 30, V - 30);Scalar upper_red(H + 30, S + 30, V + 30); // 定义红色的HSV范围if(!frame.empty()) //画面是否正常{  /*对图片二次处理*/cvtColor(frame, imghsv, COLOR_BGR2HSV);// 将图像转换为HSV颜色空间split(imghsv, hsvSplit);equalizeHist(hsvSplit[2], hsvSplit[2]);merge(hsvSplit, imghsv);inRange(imghsv, lower_red, upper_red, mask);//二值化红色部分Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));morphologyEx(mask, mask, MORPH_OPEN, kernel);//开运算morphologyEx(mask, mask, MORPH_CLOSE, kernel);//闭运算GaussianBlur(mask, mask, Size(5, 5), 0);//高斯滤波Canny(mask, mask, 150, 100);//canny算子边缘检测vector<vector<Point> > contours;vector<Vec4i> hierarchy;findContours(mask,contours,hierarchy,RETR_EXTERNAL,CHAIN_APPROX_SIMPLE,Point());  //ROS_INFO("个数为%d",int(contours.size()));std::vector<std::vector<cv::Point> >::const_iterator itc = contours.begin();std::vector<std::vector<cv::Point> >::const_iterator max_c = contours.begin();if(	(!contours.empty() && !hierarchy.empty())){//寻找最大面积的轮廓while (itc != contours.end()){if( cv::contourArea(*itc) >  cv::contourArea(*max_c)) {max_c = itc;}itc++;}Rect boundRect = boundingRect(*max_c);circle(frame, Point(boundRect.x + boundRect.width/2, boundRect.y + boundRect.height/2), 5, Scalar(0,0,255), -1);rectangle(frame, Point(boundRect.x, boundRect.y), Point(boundRect.x + boundRect.width, boundRect.y + boundRect.height), Scalar( 0, 0, 255), 2);//ROS_INFO("x:%d,y:%d",boundRect.x+ boundRect.width/2, boundRect.y + boundRect.height/2);detect_msg.Class = "red";detect_msg.xmin = boundRect.x;detect_msg.xmax=boundRect.x + boundRect.width;detect_msg.ymin=boundRect.y;detect_msg.ymax= boundRect.y + boundRect.height;}else{}        if(image_view){namedWindow("video");startWindowThread();imshow("video", frame);setMouseCallback("video", on_mouse, 0);//   int c = waitKey(1);//     if (c == 27) {//key:esc//     ros::shutdown();// }}//opencv转rostry{ros_msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", frame).toImageMsg();  }catch (cv_bridge::Exception& e){ROS_ERROR("cv_bridge exception:%s",e.what());}image_pub.publish(ros_msg);  boundingbox_pub.publish(detect_msg);}  }

 

所有效果和之前的功能包相同

Opencv+ROS实现特定物品识别_opencv 训练模型 特定物体识别-CSDN博客文章浏览阅读913次,点赞5次,收藏4次。ros实现特定物品识别,基于opencv的hsv值颜色识别算法为原理。_opencv 训练模型 特定物体识别 https://blog.csdn.net/2301_76165902/article/details/144225683具体代码可以去这篇博客查看。

感谢观看。

参考:ROS image_transport使用笔记_image callback-CSDN博客

http://www.dtcms.com/wzjs/222041.html

相关文章:

  • 深圳做三级分销网站百度实时热点排行榜
  • 河北省城乡住房和城乡建设厅网站互联网优化
  • wordpress加载主题东莞百度快照优化排名
  • 山西网站的公司找合作项目app平台
  • 做网站绑定 对应的域名企业培训视频
  • php网站开发文档模板怎么网站排名seo
  • 黄江仿做网站网站排名优化软件联系方式
  • 做html网站网络营销策划的流程
  • 被墙的网站有哪些信息流广告优化师
  • 网站开发的毕业周记关键词优化排名要多少钱
  • 服装商城的网站策划书优化设计答案大全
  • 手机网站服务器软文广告经典案例分析
  • 网站开发 案例如何创建自己的网站
  • 云南网站建设快速排名pr的选择应该优先选择的链接为
  • 如何在网站上做网页链接app广告推广
  • 建设厅教育培训网站百度帐号管家
  • 花都电子商务网站建设微信推广广告在哪里做
  • 上海自助建站 上海网站建设百度推广客户端手机版下载
  • 企业网站的种类西安百度关键词优化排名
  • 张掖网站建设培训seo排名影响因素主要有
  • 美津浓网站做一下脚型测试百度知道一下首页
  • 扬州疫情最新通报青岛seo网站关键词优化
  • 想给公司做个网站ip网站查询服务器
  • 网站建设知名公司排名网络营销实训个人总结
  • 网站页尾版权seo推广主要做什么
  • 可以做pos机的网站百度首页排名优化哪家专业
  • 公司网站怎么做才能吸引人廊坊优化技巧
  • dw和vs做网站建站为应用技术
  • dns 解析错误 网站个人开发app可以上架吗
  • 江西建设网站网络搜索工具