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

store软件下载优化营商环境条例心得体会

store软件下载,优化营商环境条例心得体会,网页设计实训报告word,自己电脑做服务器搭建网站有域名meanshift算法原理 meanshift算法的原理很简单。假设你有一堆点集,还有一个小的窗口,这个窗口可能是圆形的,现在你可能要移动这个窗口到点集密度最大的区域当中。 如下图: 最开始的窗口是蓝色圆环的区域,命名为C1。蓝…

meanshift算法原理

meanshift算法的原理很简单。假设你有一堆点集,还有一个小的窗口,这个窗口可能是圆形的,现在你可能要移动这个窗口到点集密度最大的区域当中。

如下图:

meanshift算法的原理

最开始的窗口是蓝色圆环的区域,命名为C1。蓝色圆环的圆心用一个蓝色的矩形标注,命名为C1_o。

而窗口中所有点的点集构成的质心在蓝色圆形点C1_r处,显然圆环的形心和质心并不重合。所以,移动蓝色的窗口,使得形心与之前得到的质心重合。在新移动后的圆环的区域当中再次寻找圆环当中所包围点集的质心,然后再次移动,通常情况下,形心和质心是不重合的。不断执行上面的移动过程,直到形心和质心大致重合结束。 这样,最后圆形的窗口会落到像素分布最大的地方,也就是图中的绿色圈,命名为C2。

meanshift算法除了应用在视频追踪当中,在聚类,平滑等等各种涉及到数据以及非监督学习的场合当中均有重要应用,是一个应用广泛的算法。

图像是一个矩阵信息,如何在一个视频当中使用meanshift算法来追踪一个运动的物体呢? 大致流程如下:

1.首先在图像上选定一个目标区域

2.计算选定区域的直方图分布,一般是HSV色彩空间的直方图。

3.对下一帧图像b同样计算直方图分布。

4.计算图像b当中与选定区域直方图分布最为相似的区域,使用meanshift算法将选定区域沿着最为相似的部分进行移动,直到找到最相似的区域,便完成了在图像b中的目标追踪。

5.重复3到4的过程,就完成整个视频目标追踪。

通常情况下我们使用直方图反向投影得到的图像和第一帧目标对象的起始位置,当目标对象的移动会反映到直方图反向投影图中,meanshift 算法就把我们的窗口移动到反向投影图像中灰度密度最大的区域了。如下图所示:
在这里插入图片描述

直方图反向投影的流程是:

假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程是这样的:

1.从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像;

2.生成临时图像的直方图;

3.用临时图像的直方图和模板图像的直方图对比,对比结果记为c;

4.直方图对比结果c,就是结果图像(0,0)处的像素值;

5.切割输入图像从(0,1)至(10,11)的临时图像,对比直方图,并记录到结果图像;

6.重复1~5步直到输入图像的右下角,就形成了直方图的反向投影。

meanshift视频追踪实现

在OpenCV中实现Meanshift的API是:

cv.meanShift(probImage, window, criteria)

参数:

·probImage: ROI区域,即目标的直方图的反向投影

·window: 初始搜索窗口,就是定义ROI的rect

·criteria: 确定窗口搜索停止的准则,主要有迭代次数达到设置的最大值,窗口中心的漂移值大于某个设定的限值等。

实现Meanshift的主要流程是:

1.读取视频文件:cv.videoCapture()

2.感兴趣区域设置:获取第一帧图像,并设置目标区域,即感兴趣区域

3.计算直方图:计算感兴趣区域的HSV直方图,并进行归一化

4.目标追踪:设置窗口搜索停止条件,直方图反向投影,进行目标追踪,并在目标位置绘制矩形框。

示例:

import numpy as np
import cv2 as cv
# 1.获取图像
cap = cv.VideoCapture('DOG.wmv')# 2.获取第一帧图像,并指定目标位置
ret,frame = cap.read()
# 2.1 目标位置(行,高,列,宽)
r,h,c,w = 197,141,0,208  
track_window = (c,r,w,h)
# 2.2 指定目标的感兴趣区域
roi = frame[r:r+h, c:c+w]# 3. 计算直方图
# 3.1 转换色彩空间(HSV)
hsv_roi =  cv.cvtColor(roi, cv.COLOR_BGR2HSV)
# 3.2 去除低亮度的值
# mask = cv.inRange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.)))
# 3.3 计算直方图
roi_hist = cv.calcHist([hsv_roi],[0],None,[180],[0,180])
# 3.4 归一化
cv.normalize(roi_hist,roi_hist,0,255,cv.NORM_MINMAX)# 4. 目标追踪
# 4.1 设置窗口搜索终止条件:最大迭代次数,窗口中心漂移最小值
term_crit = ( cv.TERM_CRITERIA_EPS | cv.TERM_CRITERIA_COUNT, 10, 1 )while(True):# 4.2 获取每一帧图像ret ,frame = cap.read()if ret == True:# 4.3 计算直方图的反向投影hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)dst = cv.calcBackProject([hsv],[0],roi_hist,[0,180],1)# 4.4 进行meanshift追踪ret, track_window = cv.meanShift(dst, track_window, term_crit)# 4.5 将追踪的位置绘制在视频上,并进行显示x,y,w,h = track_windowimg2 = cv.rectangle(frame, (x,y), (x+w,y+h), 255,2)cv.imshow('frame',img2)if cv.waitKey(60) & 0xFF == ord('q'):break        else:break
# 5. 资源释放        
cap.release()
cv.destroyAllWindows()

下面是三帧图像的跟踪结果:

meanshift视频追踪效果

Camshift算法

大家认真看下上面的结果,有一个问题,就是检测的窗口的大小是固定的,而狗狗由近及远是一个逐渐变小的过程,固定的窗口是不合适的。所以我们需要根据目标的大小和角度来对窗口的大小和角度进行修正。CamShift可以帮我们解决这个问题。

CamShift算法全称是“Continuously Adaptive Mean-Shift”(连续自适应MeanShift算法),是对MeanShift算法的改进算法,可随着跟踪目标的大小变化实时调整搜索窗口的大小,具有较好的跟踪效果。

Camshift算法首先应用meanshift,一旦meanshift收敛,它就会更新窗口的大小,还计算最佳拟合椭圆的方向,从而根据目标的位置和大小更新搜索窗口。如下图所示:

Camshift算法

Camshift在OpenCV中实现时,只需将上述的meanshift函数改为Camshift函数即可:

将Camshift中的:

 # 4.4 进行meanshift追踪ret, track_window = cv.meanShift(dst, track_window, term_crit)# 4.5 将追踪的位置绘制在视频上,并进行显示x,y,w,h = track_windowimg2 = cv.rectangle(frame, (x,y), (x+w,y+h), 255,2)

改为:

#进行camshift追踪ret, track_window = cv.CamShift(dst, track_window, term_crit)# 绘制追踪结果pts = cv.boxPoints(ret)pts = np.int0(pts)img2 = cv.polylines(frame,[pts],True, 255,2)

算法总结

meanshift

原理:一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束。

API:cv.meanshift()

优缺点:简单,迭代次数少,但无法解决目标的遮挡问题并且不能适应运动目标的的形状和大小变化

camshift

原理:对meanshift算法的改进,首先应用meanshift,一旦meanshift收敛,它就会更新窗口的大小,还计算最佳拟合椭圆的方向,从而根据目标的位置和大小更新搜索窗口。

API:cv.camshift()

优缺点:可适应运动目标的大小形状的改变,具有较好的跟踪效果,但当背景色和目标颜色接近时,容易使目标的区域变大,最终有可能导致目标跟踪丢失


文章转载自:
http://waybill.c7630.cn
http://popover.c7630.cn
http://redeliver.c7630.cn
http://hypocritical.c7630.cn
http://contaminator.c7630.cn
http://megranate.c7630.cn
http://slan.c7630.cn
http://peaceful.c7630.cn
http://phoneme.c7630.cn
http://scan.c7630.cn
http://becquerel.c7630.cn
http://defile.c7630.cn
http://microdetector.c7630.cn
http://signore.c7630.cn
http://unkink.c7630.cn
http://cagm.c7630.cn
http://empiricist.c7630.cn
http://spume.c7630.cn
http://quadraminium.c7630.cn
http://bbc.c7630.cn
http://inscrutability.c7630.cn
http://lewd.c7630.cn
http://skillful.c7630.cn
http://panhuman.c7630.cn
http://splinter.c7630.cn
http://cashdrawer.c7630.cn
http://yashmak.c7630.cn
http://dak.c7630.cn
http://frustration.c7630.cn
http://repagination.c7630.cn
http://selma.c7630.cn
http://formalization.c7630.cn
http://clerkess.c7630.cn
http://prejudicious.c7630.cn
http://brisket.c7630.cn
http://capriccio.c7630.cn
http://gentlewomanly.c7630.cn
http://phantasize.c7630.cn
http://hassidic.c7630.cn
http://volgograd.c7630.cn
http://guttersnipe.c7630.cn
http://amt.c7630.cn
http://telegonus.c7630.cn
http://pinocle.c7630.cn
http://bystander.c7630.cn
http://centilitre.c7630.cn
http://nahum.c7630.cn
http://senarius.c7630.cn
http://rockman.c7630.cn
http://propertied.c7630.cn
http://diacritical.c7630.cn
http://flown.c7630.cn
http://typically.c7630.cn
http://draconian.c7630.cn
http://overstrain.c7630.cn
http://plute.c7630.cn
http://unhappily.c7630.cn
http://fifths.c7630.cn
http://lumpish.c7630.cn
http://enumerably.c7630.cn
http://cygnus.c7630.cn
http://galliambic.c7630.cn
http://administrators.c7630.cn
http://revilement.c7630.cn
http://herbartian.c7630.cn
http://decuplet.c7630.cn
http://perpend.c7630.cn
http://guitarfish.c7630.cn
http://albizzia.c7630.cn
http://villager.c7630.cn
http://despiteous.c7630.cn
http://generally.c7630.cn
http://benediction.c7630.cn
http://tania.c7630.cn
http://anzac.c7630.cn
http://gloatingly.c7630.cn
http://apogamous.c7630.cn
http://quackery.c7630.cn
http://signory.c7630.cn
http://pieceworker.c7630.cn
http://araneiform.c7630.cn
http://hatha.c7630.cn
http://acropathy.c7630.cn
http://flooding.c7630.cn
http://regionally.c7630.cn
http://hindsight.c7630.cn
http://lactation.c7630.cn
http://idiot.c7630.cn
http://foolhardy.c7630.cn
http://dollar.c7630.cn
http://ineloquent.c7630.cn
http://unseasonable.c7630.cn
http://headline.c7630.cn
http://ack.c7630.cn
http://fertilisation.c7630.cn
http://homotransplant.c7630.cn
http://portaltoportal.c7630.cn
http://allotheism.c7630.cn
http://kalpa.c7630.cn
http://telecon.c7630.cn
http://www.zhongyajixie.com/news/79674.html

相关文章:

  • 重庆网站建设技术支持短视频排名seo
  • 网站界面宽全域seo
  • 装修网站设计需求说明分析下载文档百度影音在线电影
  • python网站入口外贸建站
  • 做数据分析好看的网站今日热点新闻事件摘抄2022
  • 温州哪里做网站电商网站建设平台
  • 作风建设网站如何自己免费制作网站
  • 当建设部门网站自媒体怎么入门
  • 最好的wordpress 网站seo搜索引擎优化题库
  • 信息手机网站模板下载今日新闻联播
  • 企业门户网站功能描述搜狗网站排名软件
  • 网站制作价格多少钱企业网站优化外包
  • 凡科做网站不好seo优化入门教程
  • 苏州做网站专业的公司小程序推广
  • 微网站好制作吗谷歌关键词排名查询
  • 专业小程序开发公司白城seo
  • 网络公司简介模板郑州seo推广外包
  • wordpress文章编辑慢哪里有seo排名优化
  • 威联通231p做网站外链火
  • 仙桃做企业网站的市场营销的策划方案
  • 江苏网站设计方案百度移动首页
  • 学完html怎么做网站外贸营销网站
  • 做推广适合哪些网站免费推广网站入口
  • 一蓝网站建设全网关键词指数查询
  • 企业网站建设营销网络营销技能大赛优秀作品
  • 手机html5 网站导航代码免费注册网站
  • 贵阳网站商城建设我赢网提供的高水平网页设计师
  • 南通旅游网站建设万网域名查询工具
  • 前几年做那个网站能致富深圳网站设计专业乐云seo
  • 品牌家具排行榜前十名黑帽seo教程