如何使用projective2d和转换为帧的视频中的多边形绘制形状

时间:2015-11-12 19:24:36

标签: matlab image-processing video polygon matlab-cvst

您好我正在尝试从相机中提取帧并在所获取的帧中应用SURF检测。该过程很有效,除了我无法在检测到的对象周围绘制形状或多边形。在估计几何变换中,我能够得到projective2d tform。但是当我试图在检测到的对象周围绘制一个方框多边形时,我无法看到任何多边形或形状。有时多边形会消失。有时多边形在检测到的对象周围不准确。

tform和polygon的代码如下:

[tform, ~, ~,status] = ...
estimateGeometricTransform(matchedBoxPoints, matchedScenePoints, 'projective');

%box Polygon
boxPolygon = [1, 1;...                           % top-left
     size(boxImage, 2), 1;...                 % top-right
     size(boxImage, 2), size(boxImage, 1);... % bottom-right
     1, size(boxImage, 1);...                 % bottom-left
     1, 1]; 
newBoxPolygon = transformPointsForward(tform, boxPolygon);

% Display the frame
imshow(data)
hold on;
      line(newBoxPolygon(:, 1), newBoxPolygon(:, 2), 'Color', 'y');
title('Detected Box');
refreshdata;

1 个答案:

答案 0 :(得分:0)

如果多边形消失或不准确,可能是因为您找不到足够的匹配项,或者因为您的匹配项不正确。您可能想看看是否是这种情况,如果是,请尝试调整matchFeatures函数的参数。

您还可以使用insertShape将多边形直接绘制到图像像素中。但同样,这假设您具有良好的功能匹配,并且您已计算出正确的转换。