利用kade - lucas - tomasi (KLT)算法跟踪视频点
点跟踪器对象使用Kanade-Lucas-Tomasi(KLT),特征跟踪算法跟踪一组点。您可以使用点跟踪器进行视频稳定,相机运动估计和对象跟踪。它尤其适用于跟踪不改变形状的物体以及展示视觉纹理的物体。点跟踪器通常用于短期跟踪,作为更大的跟踪框架的一部分。
随着点跟踪算法的发展,点可能会由于光照变化、平面旋转或关节运动而丢失。要在很长一段时间内跟踪一个对象,可能需要周期性地重新获取点。
跟踪一组点:
创建Vision.PointCracker.
对象,并设置其属性。
使用参数调用对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?.
pointtracker = Vision.PointCracker.
返回一个点跟踪器对象,用于跟踪视频中的一组点。
使用一个或多个名称-值对设置属性。将每个属性名用引号括起来。例如,PointTracker.
=愿景。PointTracker (名称,值
)pointTracker = vision.PointTracker (NumPyramidLevels, 3)
初始化跟踪过程:
要初始化跟踪过程,必须使用初始化
指定点的初始位置和初始视频帧。
初始化(pointTracker点,我)
初始化要跟踪的点并设置初始视频帧。最初的位置点
,一定是米[x y]坐标的-by-2数组。初始视频帧,我
,必须是二维灰度或RGB图像,并且必须与传递给该的视频帧的大小和数据类型相同一步
方法。
的检测到空间
,探测拍摄
,detectHarrisFeatures
, 和detectMinEigenFeatures
函数是获取跟踪初始点的许多方法中的少数几种。
[
跟踪输入帧中的点,点
,point_validity
) = pointTracker (我
)我
.
[
此外,返回每个点的信心分数。点
,point_validity
,得分
) = pointTracker (我
)
setPoints(PointTracker,
设置跟踪点。函数将米2点
)点
[xy]与追踪点的坐标。如果需要重新检测点,则可以使用此功能,因为在跟踪期间丢失了太多时,太多丢失了。
setPoints(PointTracker,
另外,允许您标记点为有效或无效。输入逻辑向量点
,point_validity
)point_validity
的长度米,包含与要跟踪的点的有效性相对应的真值或假值。长度米对应于点的个数。假值表示不应该跟踪的无效点。例如,可以使用这个函数estimateGeometricTransform
函数来确定先前和当前帧中的点位置之间的变换。您可以将异常值标记为无效。
要使用对象功能,请将System Object™指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj
,使用此语法:
发行版(obj)
[1] Lucas,Bruce D.和Takeo Kanade。“一种迭代图像配准技术,具有立体视觉的应用程序,”第七届国际人工智能联合会议论文集, 1981年4月,第674-679页。
[2] Tomasi,Carlo和Takeo Kanade。点特征检测与跟踪1991年4月,卡耐基梅隆大学计算机科学系。
[3]史,建博和卡洛汤姆西。“追踪的好功能,”IEEE计算机愿景和模式识别, 1994,第593-600页。
[4] Kalal,Zdenek,Krystian Mikolajczyk和Jiri Matas。“前后错误:自动检测跟踪故障,”第20届国际模式识别国际会议的诉讼程序,2010年,2010年第2756-2759页。
detectHarrisFeatures
|detectMinEigenFeatures
|探测拍摄
|estimateGeometricTransform
|imrect
|InsertMarker.
|愿景。HistogramBasedTracker