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

咸阳网站建设方案研发网站建设报价

咸阳网站建设方案,研发网站建设报价,烟台比较好的软件公司,wordpress账户被禁用一、前言 区别于之前的直接驱动相机,这里改为读取图像话题进行处理,原因是如果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/816944.html

相关文章:

  • 网站建设一般预付比例多少专门做app的网站
  • wordpress淘口令插件网站seo设计方案案例
  • 做网站的市场前景seo技术培训教程视频
  • 专业制作网站费用网站使用条款模板
  • 网站联系我们页面设计汶上1500元网站建设
  • 怎样将自己做的网站发布到外网上备案域名购买腾讯云
  • 点餐网站模板网站建设 深圳宝安
  • 保定市做网站的电话wordpress媒体文档
  • 深圳企业网站制作企业网站建设包含以下哪些建设阶段
  • 网站验证wordpress情侣主题汉化
  • 有关大学生做兼职的网站知乎网站建设入门书
  • 深圳便宜建网站直播:韩国vs加纳直播
  • 凡客诚品老板做网站推广 seo的
  • 专业的网站建设制作服务西安住房城市建设局官网
  • 制作网页和网站的区别主机租赁平台
  • 建设招标网 手机官方网站中源建设有限公司网站
  • 软件网站排名网站与新媒体建设测评方案
  • dw做网站怎么上线合肥网站建设网站
  • 百度官方网站网址做一个内容网站多少钱
  • 网站模板制作视频教程学科基地网站建设
  • 做网站赚钱农业局网站建设方案
  • 建个网站怎放上一张图付费主题wordpress
  • 做外贸哪些网站好沈阳网站推广优化排名公司
  • 保洁公司做网站有什么作用深圳建站公司哪个济南兴田德润简介
  • 宿迁市区建设局网站网站 色彩
  • 968深圳网站建设公司极路由wordpress
  • 旅游景区网站建设方案网上商城网址怎么写
  • 自适应网站建设都找全网天下做报名统计的网站
  • 网站建设设计思想福建建设人才与科技发展中心
  • 建网站公司郑州手机主页哪个网站好