资源描述:
《基于meanshift算法的图像处理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、MeanShift,我们翻译为“均值飘移”。其在聚类,图像平滑。图像分割和跟踪方面得到了比较广泛的应用。由于木人1=1前研究跟踪方面的东西,故此主要介绍利用MeanShift方法进行目标跟踪,从而对MeanShift有一个比较全面的介绍。(以下某些部分转载常峰宁长的“MeanShift概述”)MeanShift这个概念最早是由Fukunaga等人于1975年在一篇关于概率密度梯度函数的估计(TheEstimationoftheGradientofaDensityFunction,withApplicationsinPatternRecognition)中提出来的,其最初含
2、义正如其名,就是偏移的均值向量,在这里MeanShift是一个名词,它指代的是-•个向量,但随着MeanShift理论的发展,MeanShift的含义也发生了变化,如果我们说MeanShift算法,—•般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然示以此为新的起始点継续移动,直到满足一定的条件结束.然而在以后的很长一段时间内MeanShift并没有引起人们的注意,直到20年以后,也就是1995年,另外一篇关于MeanShift的重要文献(Meanshift,modeseeking,andclustering)才发表.在这篇重要的文献中,Yizon
3、gCheng对基本的MeanShift算法在以下两个方而做了推广,首先YizongCheng定义『一族核函数,使得随着样木与被偏移点的距离不同,英偏移屋对均值偏移向最的贡献也不同,K:次YizongCheng还设定了一个权重系数,使得不同的样本点重要性不一样,这大大扩大了MeanShift的适用范围.另外YizongCheng指出了MeanShift可能应用的领域,并给出了具休的例子。Comaniciu等人在还(Mean-shiftBlobTrackingthroughScaleSpace)中把非刚体的跟踪问题近似为一个MeanShift最优化问题,使得跟踪可以实时的进行
4、。H前,利用MeanShift进行跟踪已经相当成熟。目标跟踪不是一个新的问题,目前在计算机视觉领域内有不少人在研究。所谓跟踪,就是通过已知的图像帧屮的目标位置找到目标在下一帧中的位置。下面主要以代码形式展现MeanShift在跟踪中的应用。voidCObjectTracker::ObjeckTrackerHandlerByUser(Ipllmage*frame)//跟踪函数{m_cActiveObject=0;if(m_sTrackingObjectTable[m_cActiveObject].Status){if(!m_sTrackingObjectTable[m_cA
5、ctiveObject].assignedAnObject){FindHistogram(frame,ni_sTrackingObjectTable[m_cActiveObject].initHistograni);m_sTrackingObjectTable[m_cActiveObjectJ.assignedAnObject=true;elseFindNextLocation(frame);//利用meanshift迭代找HlFI标卜一个位置DrawObjcctBox(framc);voidCObjectTracker::FindNextLocation(IplImag
6、e*frame){inti,j,opti,optj;SINT16scale[3]={-3,3,0};FLOAT32dist,optdist;SINT16h,w,optX,optY;//tryno-scalingFindNextFixScale(frame);//找出目标的卜'一个大致范围optdist=LastDist;optX=m_sTrackingObjectTable[m_cActiveObject].X;optY=m_sTrackingObjectTable[m_cActiveObjectl.Y;//tryoneofthe9possiblescalingi=ran
7、d()*2/RAND_MAX;j=rand()*2/RAND_MAX;&&h=m_sTrackingObjectTablefm_cActiveObjectl.H;w=m_sTrackingObjcctTablc[m_cActivcObjcct].W;if(h+scale[i]>10&&w+scale[j]>10&&h+scale[i]