您好我正在尝试从相机中提取帧并在所获取的帧中应用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;
答案 0 :(得分:0)
如果多边形消失或不准确,可能是因为您找不到足够的匹配项,或者因为您的匹配项不正确。您可能想看看是否是这种情况,如果是,请尝试调整matchFeatures
函数的参数。
您还可以使用insertShape
将多边形直接绘制到图像像素中。但同样,这假设您具有良好的功能匹配,并且您已计算出正确的转换。