在场景中跟踪一张脸
创建用于读取和显示视频以及绘制对象边框的系统对象。
videoReader = videoReader (“visionface.avi”);放像机=愿景。放像机(“位置”[100100680520]);
读取第一个视频帧,其中包含对象,定义区域。
objectFrame = readFrame (videoReader);objectRegion =(264122、93、93);
作为一种替代方法,您可以使用以下命令使用鼠标选择对象区域。对象必须占据该区域的大部分:
图;imshow (objectFrame);
objectRegion =圆(getPosition (imrect))
用红色边框显示初始帧。
objectImage = insertShape (objectFrame,“矩形”objectRegion,“颜色”,“红色”);图;imshow (objectImage);标题(“红框显示对象区域”);
检测对象区域中的兴趣点。
点= detectMinEigenFeatures (im2gray (objectFrame),“投资回报”, objectRegion);
显示检测到的点。
pointImage = insertMarker (objectFrame点。的位置,“+”,“颜色”,“白色”);图;imshow (pointImage);标题(“检测兴趣点”);
创建一个跟踪器对象。
追踪=愿景。PointTracker (“MaxBidirectionalError”1);
初始化跟踪。
初始化(跟踪、points.Location objectFrame);
读取、跟踪、显示每个视频帧中的点和结果。
而hasFrame(videereader) frame = readFrame(videereader);(点,有效性)=追踪(框架);out = insertMarker(frame,points(validity,:),“+”);放像机(出);结束
释放视频播放器。
释放(放像机);