Matlab 如何在图像上绘制包含surfPoints对象的矩形?
我有一个灰度图像,我想使用detectSURFFeatures()提取感兴趣的区域。使用此函数,我得到一个surfPoints对象。 通过在图像上显示这个对象,我得到了作为感兴趣区域的圆圈。 在我的例子中,我想要包含这些圆的矩形区域。 更清楚地说,我有一张图1: 我想使用:detectSURFFeatures()提取感兴趣区域(ROI),我们获得图像 如果你能看到我们有圆形区域,对于我的例子,我想要包含圆形区域的矩形ROI:Matlab 如何在图像上绘制包含surfPoints对象的矩形?,matlab,image-processing,feature-detection,surf,Matlab,Image Processing,Feature Detection,Surf,我有一个灰度图像,我想使用detectSURFFeatures()提取感兴趣的区域。使用此函数,我得到一个surfPoints对象。 通过在图像上显示这个对象,我得到了作为感兴趣区域的圆圈。 在我的例子中,我想要包含这些圆的矩形区域。 更清楚地说,我有一张图1: 我想使用:detectSURFFeatures()提取感兴趣区域(ROI),我们获得图像 如果你能看到我们有圆形区域,对于我的例子,我想要包含圆形区域的矩形ROI: 看起来半径完全由点。比例参数决定 % Detection of t
看起来半径完全由
点。比例
参数决定
% 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
)的默认比例属性值的一半。但是,由于文档中没有这方面的信息,我可能是错的。值得一提的是,每个ROI的比例参数与SURFPoints
对象的比例属性不同。看起来半径完全由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
)的默认比例属性值的一半。但是,由于文档中没有这方面的信息,我可能是错的。值得一提的是,每个ROI的比例参数与冲浪点
对象的比例属性不同。矩形
可能会对你起作用。我的问题是我没有圆的半径,我所拥有的只是冲浪点信息矩形
可能会起作用,对你来说。我的问题是我没有圆的半径。我只有冲浪点信息谢谢你,先生@obchardon你的答案对我有用非常感谢。我有一个问题,为什么值是6,因为你在文档中没有关于它的信息。那么我们的矩形的方向呢?因为我们可以使用SURFPOINTS获得的信息来改变获得的矩形的方向。因为文档中没有信息,所以我不能确定我的解释是否正确。尝试为scale
属性创建一个具有不同值的随机surfPoints
对象,并检查我的解释是否仍然有效。对于旋转,您只需使用旋转矩阵旋转矩形的坐标,并使用绘图绘制结果即可。非常感谢您的时间和帮助谢谢您的回答@obchardon您的回答对我有用非常感谢。我有一个问题,为什么该值为6,因为您在文档中没有提到它的相关信息。那么我们的矩形的方向呢?因为我们可以使用SURFPOINTS获得的信息来改变获得的矩形的方向。因为文档中没有信息,所以我不能确定我的解释是否正确。尝试为scale
属性创建一个具有不同值的随机surfPoints
对象,并检查我的解释是否仍然有效。对于旋转,您只需使用旋转矩阵来旋转矩形的坐标,并使用绘图
绘制结果。非常感谢您的时间和帮助