如何获得旋转图像的四个角?
How to get the four corners of a rotated image?
我有一张按 imrotate
旋转的图像,如下所示:
Im_requete=imread('lena.jpg');
Im_requete_G=rgb2gray(Im_requete);
Im_requete_G_scale_rot = imresize(imrotate(Im_requete_G,-20), 1.2);
我正在尝试获取旋转图像的四个角的坐标 (x, y),如下图所示(红色圆圈代表所需的角):
这是我的代码:
stat = regionprops(Im_requete_G_scale_rot,'Extrema'); %extrema detection of the image.
point = stat.Extrema;
hold on
figure,imshow(Im_requete_G_scale_rot)
hold on
for i = 2:2:length(point)
x = point(i,1);
y = point(i,2);
plot(x,y,'o');
text(x,y,num2str(i),'color','r')
end
但是生成的坐标位于边缘的某处,而不是我想要的位置,如第二张图片所示:
谁能告诉我这段代码有什么问题吗?
我对此没有很好的解释,但我想 regionprops
被图像中的灰度色调弄糊涂了。如果我们将旋转的 Lena 变成 logical
数组,您的算法将正常工作:
Im_requete_G_scale_rot = logical(imresize(imrotate(Im_requete_G,-20), 1.2)); % 3rd line
我有一张按 imrotate
旋转的图像,如下所示:
Im_requete=imread('lena.jpg');
Im_requete_G=rgb2gray(Im_requete);
Im_requete_G_scale_rot = imresize(imrotate(Im_requete_G,-20), 1.2);
我正在尝试获取旋转图像的四个角的坐标 (x, y),如下图所示(红色圆圈代表所需的角):
这是我的代码:
stat = regionprops(Im_requete_G_scale_rot,'Extrema'); %extrema detection of the image.
point = stat.Extrema;
hold on
figure,imshow(Im_requete_G_scale_rot)
hold on
for i = 2:2:length(point)
x = point(i,1);
y = point(i,2);
plot(x,y,'o');
text(x,y,num2str(i),'color','r')
end
但是生成的坐标位于边缘的某处,而不是我想要的位置,如第二张图片所示:
谁能告诉我这段代码有什么问题吗?
我对此没有很好的解释,但我想 regionprops
被图像中的灰度色调弄糊涂了。如果我们将旋转的 Lena 变成 logical
数组,您的算法将正常工作:
Im_requete_G_scale_rot = logical(imresize(imrotate(Im_requete_G,-20), 1.2)); % 3rd line