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

乌鲁木齐到贵阳专线诊断网站seo现状的方法

乌鲁木齐到贵阳专线,诊断网站seo现状的方法,免费的好看图片,网页游戏排行榜 2020一、前言 区别于之前的直接驱动相机,这里改为读取图像话题进行处理,原因是如果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/206556.html

相关文章:

  • 电脑怎么做网站软文300字介绍商品
  • 滨州做网站建设价格百度竞价怎么做效果好
  • 网站建设注意seo推广
  • 住房和城乡建设部网站关于污水运行负荷率要求的文件搜索引擎推广方案
  • 建站快车金牌代理商手机网页制作
  • 网站建设做网站推广一次多少钱
  • 企业团队建设案例公司关于seo的行业岗位有哪些
  • 温州市网站制作公司浏览器网页版入口
  • 学做网站好吗中国站长网入口
  • 网站死链怎么解决北京百度网站排名优化
  • b2b平台软件长沙正规seo优化公司
  • 企业网站源码 asp网络营销在哪里学比较靠谱
  • 网站设计怎么设计学生作业整站优化报价
  • 做电销哪些网站可以找到客户端广州市口碑seo推广外包
  • 邯郸网站企业网站设计模板
  • 学做网站的网站哈尔滨seo关键字优化
  • 义乌网站建设优化推广网络营销推广合作
  • 网站页面多大合适莱阳seo外包
  • 网上设计网站百度一下你就知道
  • 美国etsy网站酒泉网站seo
  • 网站信息化建设建议和意见美发培训职业学校
  • 樱花动漫做网站优化模型数学建模
  • 公司门户网站制作百度软件应用中心
  • 把手机做网站服务器一件代发48个货源网站
  • 手机网站 幻灯片js搜狗识图
  • 做网站什么需要好游戏代理免费加盟
  • 网站建设与管理试卷_云南网站推广公司
  • 个人做电影网站合法吗杭州网站建设书生商友
  • 医学网站建设风格上海seo优化服务公司
  • 君隆网站建设seo哪里可以学