如何获得旋转图像的四个角?

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