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

杭州一起做网站电子商务网站数据库怎么做

杭州一起做网站,电子商务网站数据库怎么做,网站建设哪家公司最好,网站流量如何做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.zqtcl.cn/news/198504/

相关文章:

  • 好的网站特点京东物流网站建设特点
  • 昆明企业自助建站系统网站建设技术交流
  • 卖网站模板网站哪家做的比较好
  • 舟山网站网站建设视频网站建设应该注意什么
  • 网站建设 思维导图免费flash网站源码
  • 提供零基础网站建设教学公司wordpress悬浮下拉
  • 做网站代码难么南京市建设监理协会网站
  • 网站维护 静态页面正规企业展厅设计公司
  • 网站分享图片怎么做东莞网站优化关键词费用
  • 做摄影网站的目的域名注册和网站设计服务
  • 手表网站设计免费常州百度推广优化
  • 网站开发找聚脑网视频直播源码
  • 提供免费服务器的网站南沙电子商务网站建设
  • 厦门网站建设开发公司企业网站设计源代码
  • 微网站服务器酒店手机网站首页设计
  • 网站交互做的比较好的怎样营销网站建设
  • 电子商务网站设计代码凡科做的网站能被收录吗
  • 设计网站教程自动点击器永久免费版
  • 深圳 网站建设设计如何用公众号做网站
  • 免费微信网站制作北风淘淘网站开发
  • 建筑模型设计网站建设网站设计 分辨率
  • 网站规划包括哪些内容西部建设网站
  • 网站html静态化网站整体色彩的建设
  • 长春比较有名的做网站建设宁波网站建设联系电话查询
  • 建网站中企动力推荐网络营销外包总代理
  • 网站怎么续费网站内链检测
  • 织梦网站地图样式中国品牌网站
  • 上海金山区建设局网站临淄信息港发布信息
  • 保定外贸网站建设学生网站建设首页
  • 商城网站备案要求wordpress插件 手机版