如何在图像上绘制包含 surfPoints 对象的矩形?
How can I draw the rectangle including the surfPoints object on the image?
我有一张灰度图像,我想使用 detectSURFFeatures() 提取感兴趣的区域。使用这个函数我得到一个 surfPoints 对象。
通过在图像上显示此对象,我将圆圈作为感兴趣区域。
对于我的情况,我想要包含这些圆圈的矩形区域。
更清楚地说,我有一张图片 1:
我想使用 detectSURFFeatures() 提取感兴趣区域 (ROI),我们获得图像
如果你能看到我们有圆形区域,对于我的情况,我想要包含圆形区域的矩形 ROI :
看来半径完全由points.Scale
参数决定。
% Detection of the SURF features:
I = imread('cameraman.tif');
points = detectSURFFeatures(I);
imshow(I); hold on;
% Select and plot the 10 strongest features
p = points.selectStrongest(10)
plot(p);
% Here we add the bounding box around the circle.
c = 6; % Correction factor for the radius
for ii = 1:10
x = p.Location(ii,1); % x coordinate of the circle's center
y = p.Location(ii,2); % y coordinate of the circle's center
r = p.Scale(ii); % Scale parameter
rectangle('Position',[x-r*c y-r*c 2*r*c 2*r*c],'EdgeColor','r')
end
我们得到以下结果:
在这个例子中,半径的修正系数是6
。我猜这个值对应于 SURFPoints
对象(即 12.0
)默认 Scale 属性值的一半。但由于文档中没有相关信息,我可能是错的。请注意,每个 ROI 的规模 参数 与 SURFPoints
对象的规模 属性 不同。
我有一张灰度图像,我想使用 detectSURFFeatures() 提取感兴趣的区域。使用这个函数我得到一个 surfPoints 对象。 通过在图像上显示此对象,我将圆圈作为感兴趣区域。 对于我的情况,我想要包含这些圆圈的矩形区域。 更清楚地说,我有一张图片 1:
我想使用 detectSURFFeatures() 提取感兴趣区域 (ROI),我们获得图像
如果你能看到我们有圆形区域,对于我的情况,我想要包含圆形区域的矩形 ROI :
看来半径完全由points.Scale
参数决定。
% Detection of the SURF features:
I = imread('cameraman.tif');
points = detectSURFFeatures(I);
imshow(I); hold on;
% Select and plot the 10 strongest features
p = points.selectStrongest(10)
plot(p);
% Here we add the bounding box around the circle.
c = 6; % Correction factor for the radius
for ii = 1:10
x = p.Location(ii,1); % x coordinate of the circle's center
y = p.Location(ii,2); % y coordinate of the circle's center
r = p.Scale(ii); % Scale parameter
rectangle('Position',[x-r*c y-r*c 2*r*c 2*r*c],'EdgeColor','r')
end
我们得到以下结果:
在这个例子中,半径的修正系数是6
。我猜这个值对应于 SURFPoints
对象(即 12.0
)默认 Scale 属性值的一半。但由于文档中没有相关信息,我可能是错的。请注意,每个 ROI 的规模 参数 与 SURFPoints
对象的规模 属性 不同。