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

安县建设局网站公众号文章模板免费

安县建设局网站,公众号文章模板免费,wordpress登陆不跳转,优秀的网站首页布局CamShift#xff08;Continuously Adaptive Mean Shift#xff09;是一种用于目标跟踪的方法#xff0c;它是均值漂移#xff08;Mean Shift#xff09;的扩展#xff0c;支持对目标的旋转跟踪#xff0c;能够对目标的大小和形状进行自适应调整。 cv::CamShift和cv::me…CamShiftContinuously Adaptive Mean Shift是一种用于目标跟踪的方法它是均值漂移Mean Shift的扩展支持对目标的旋转跟踪能够对目标的大小和形状进行自适应调整。 cv::CamShift和cv::meanShift区别 cv::meanShift 这是一种用于均值漂移目标跟踪的算法。它基于颜色直方图的均值漂移寻找输入图像中与模板颜色直方图最相似的区域。在这个算法中窗口的位置根据均值漂移进行调整直到找到目标对象。cv::meanShift 返回找到的目标的矩形区域。但它的不足之处在于检测窗口的大小是固定的而目标是不断变化的比如由近到远各种旋转固定的窗口是不合适的。 cv::CamShift 这是 cv::meanShift 的扩展用于在图像中寻找旋转目标的位置。cv::CamShift 在 cv::meanShift 的基础上引入了旋转矩形使得它能够更好地适应旋转目标的情况。实际上cv::CamShift 返回的是一个旋转矩形cv::RotatedRect而不仅仅是矩形。同时能够对目标的大小和形状进行自适应调整适用于目标尺寸和形状变化较大的情况下。 下面左图是meanShift右图是CamShift追踪效果对比可以看到随着目标有近到远变小meanShfit追踪窗口始终固定不变而CamShift能实时变化。 meanShift原理 图中一堆点集任意位置有个圆形窗口黑色圆可以看到窗口的圆心点1位置和窗口的质心点2位置并不重合那么这个窗口的圆心便会向质心的方向移动当圆心1与质心2大致重合时圆的位置大概在红色圆的位置此时在被红色圆覆盖的点集中3的位置为点集最密集的地方此时红色圆的质心又被更新到3的位置那么圆便会继续从2的位置向3的位置移动。 不断执行上面的过程直到圆心最终和质心大致重合。每次迭代移动的矢量即meanShift。 meanShift算法的基本思路 先设置一个感兴趣窗口通常为矩形计算窗口内像素的颜色直方图作为目标对象根据目标对象的颜色分布通过不断迭代计算窗口的平均漂移来更新窗口的位置和大小从而实现目标的实时跟踪。 camShift算法原理是在meanShift基础上加入了自适应调整目标窗口大小和旋转方向实现目标的实时跟踪。 利用opencv的camShift算法来追踪目标 RotatedRect CamShift( InputArray probImage, CV_IN_OUT Rect window,TermCriteria criteria );probImage表示概率图像通常是反向投影的结果。反向投影是基于目标的颜色直方图用于估计在图像中的可能位置。 window输入时表示追踪的初始窗口输出时表示找到的新窗口。这是一个矩形也就是目标区域的初始位置。 criteria指定迭代的停止条件通常是一个 cv::TermCriteria 类型的对象。它定义了迭代的最大次数、最小精度或两者的组合。 cv::CamShift 函数返回一个 cv::RotatedRect 对象它表示找到的目标的位置、方向和大小。 camShift追踪流程 1首先在图像上选定一个目标区域通常为矩形 2计算选定区域的直方图分布一般是HSV色彩空间的直方图。 3对下一帧图像B同样计算直方图分布。 4计算图像B当中与选定区域直方图分布最为相似的区域即比较图像B的直方图和目标对象的直方图生成一个反向投影图像。这个反向投影图像的每个像素值表示图像B该位置的像素值与目标对象直方图的相似程度。反向投影图像可以将图像中与给定模式目标对象具有相似颜色分布的区域显著地突出显示 5使用camshift算法将选定区域沿着最为相似的部分进行移动直到找到最相似的区域便完成了在图像b中的目标追踪。 6重复3到5的过程就完成整个视频目标追踪。 下面是代码示例 #include opencv2/opencv.hpp #include iostream using namespace cv; using namespace std; //-----------------------------------【全局变量声明】----------------------------------------- // 描述声明全局变量 //------------------------------------------------------------------------------------------------- Mat image; bool selectObject false; Point origin; Rect selection; int vmin 10, vmax 255, smin 30; bool isSelectRoi false; bool targetTrackingEnable false; Mat roi_hist; int channels[] { 0 }; int histSize 180; //bin分为180份 float range[] { 0, 180 }; const float* histRange { range }; TermCriteria term_crit_; //--------------------------------【onMouse( )回调函数】------------------------------------ // 描述鼠标操作回调 //------------------------------------------------------------------------------------------------- static void onMouse(int event, int x, int y, int, void*) {if (selectObject){selection.x MIN(x, origin.x);selection.y MIN(y, origin.y);selection.width std::abs(x - origin.x);selection.height std::abs(y - origin.y);selection Rect(0, 0, image.cols, image.rows);}switch (event){case EVENT_LBUTTONDOWN:origin Point(x, y);selection Rect(x, y, 0, 0);selectObject true;targetTrackingEnable false;break;case EVENT_LBUTTONUP:selectObject false;if (selection.width 0 selection.height 0)isSelectRoi true;break;} }int main(int argc, const char** argv) {VideoCapture cap;Rect trackWindow;int hsize 16;float hranges[] { 0,180 };const float* phranges hranges;cap.open(0);if (!cap.isOpened()){cout 不能初始化摄像头\n;}namedWindow(Histogram, 0);namedWindow(CamShift Demo, 0);setMouseCallback(CamShift Demo, onMouse, 0);//设置滚动条可以在二值化图像时实时改变阈值createTrackbar(Vmin, CamShift Demo, vmin, 256, 0);createTrackbar(Vmax, CamShift Demo, vmax, 256, 0);createTrackbar(Smin, CamShift Demo, smin, 256, 0);Mat frame;for (;;){cap frame;if (frame.empty())break;frame.copyTo(image);if (isSelectRoi){//获取第一帧图像并指定ROI区域Mat roi_hsv;Mat roi image(selection); //截取鼠标绘制的roicvtColor(roi, roi_hsv, COLOR_BGR2HSV); //把roi图像转为hsv色彩图像//去除低亮度值二值化图像低亮度置0高亮度置1Mat mask;int _vmin vmin, _vmax vmax;inRange(roi_hsv, Scalar(0, smin, MIN(_vmin, _vmax)),Scalar(180, 255, MAX(_vmin, _vmax)), mask);//计算直方图/*在HSV颜色空间中H色相的取值范围是[0, 360)而在OpenCV中H通道的取值范围被映射到[0, 180)。这是因为OpenCV中对H通道的取值范围进行了缩放将360度映射到了180度。所以在使用 calcHist 函数计算直方图时range[] 参数用于指定每个通道的取值范围。对于HSV颜色空间中的H通道这里使用的是[0, 180)。这确保了直方图的统计考虑了整个H通道的取值范围。如果你的颜色空间是RGB而不是HSV那么在计算直方图时range[] 参数应该是[0, 256)。这样就能覆盖RGB图像中每个通道的所有可能取值。*/calcHist(roi_hsv, 1, channels, mask, roi_hist, 1, histSize, histRange);// 归一化normalize(roi_hist, roi_hist, 0, 255, NORM_MINMAX);// 4. 目标追踪// 4.1 设置窗口搜索终止条件最大迭代次数窗口中心漂移最小值TermCriteria term_crit(TermCriteria::EPS | TermCriteria::COUNT, 10, 1);term_crit_ term_crit;waitKey(30);isSelectRoi false;targetTrackingEnable true;}else if (targetTrackingEnable){// 4.2 计算直方图的反向投影Mat hsv;cvtColor(image, hsv, COLOR_BGR2HSV); //把输入图像转为hsv色彩图像Mat backProject;cv::calcBackProject(hsv, 1, channels, roi_hist, backProject, histRange);// 4.3 进行meanshift追踪RotatedRect track_box cv::CamShift(backProject, selection, term_crit_);// 4.4 将追踪的位置绘制在视频上并进行显示ellipse(image, track_box, Scalar(0, 0, 255), 2);imshow(CamShift Demo, image);if (waitKey(30) q)break;}if (selectObject selection.width 0 selection.height 0){Mat roi(image, selection);bitwise_not(roi, roi);}imshow(CamShift Demo, image);if (waitKey(30) q)break;}// 5. 资源释放cap.release();destroyAllWindows();return 0; } 效果展示 Camshift的优点简单计算量较少因为Camshift的本质就局部检测在局部里检测“密度”最大的位置。 Camshift的缺点Camshift的优点有时候也正是其缺点因为其简单所以对于复杂背景或者纹理丰富的物体跟踪效果较差。因为Camshift是对直方图反投影所形成的二值图像进行处理的如果背景较为复杂或者物体的纹理较为丰富那么此二值图像的噪声就很多具体原因可参考直方图反投影的原理这将直接干扰Camshift对物体位置的判断。 所以对Camshift的总结为Camshift适用于物体表面颜色较为单一且和背景颜色差距较大
http://www.sczhlp.com/news/180910/

相关文章:

  • 男男床做视频网站在线整合式营销
  • 做网店哪些网站比较好网站未备案可以上线吗
  • 口碑好的扬州网站建设wordpress 显示多媒体
  • 触屏网站WordPress对接易支付
  • WordPress虚拟资源模板做seo的网站推广
  • 要怎样做网站发到百度上面如何做游戏开发
  • 中山企业网站建设定制电子商务网站建设需求说明书
  • 做网站需要知道什么wordpress amp设置
  • 山东青岛网站制作wordpress商城企业
  • 潍坊做网站软件中国江西网官方网站
  • 嵊州市建设局网站产品设计优秀网站
  • 网站建设柒首先金手指9wordpress无法设置主页
  • 淘宝网网站建设目的国内代理
  • 中小企业公共服务平台网站建设新手想写小说怎么做网站
  • 无锡网站推广排名满足客户的crm软件定制
  • 做网站怎么赚钱 注册猪八戒网可以做福彩网站吗
  • dede搭建网站教程百度关键词排名批量查询
  • 网站架构设计师岗位要求网站栏目结构哪些
  • 南京哪里有做网站的搭建线上购物平台
  • 宁波做网站建设推广网站怎么制作软件
  • ssh框架做音乐网站地方门户网站的特点
  • 15年做啥网站能致富狼们求个没封的免费网站
  • 聊城门户网站建设做医院的网站 配色怎么选择
  • 成都专业网站建设机构除了58还有什么信息发布平台
  • 网站制作1000元优酷有wordpress插件吗
  • 网站建设能用手机制作吗中国最新军事新闻昨天视频
  • 重庆网站推广公司电话电脑网站建设在哪里
  • app和网站开发哪个难wordpress swatch
  • 延庆网站建设师老网站301跳转新网站
  • 四川省住房和城乡建设厅网站发网站建设与维护作业