如何在 Matlab 中旋转轴对象

How to rotate axes object in Matlab

我正在寻找一种在 Matlab 中沿轴旋转图像的方法。我曾尝试使用 rotateimrotate 来实现此目的,但这两个功能对我都不起作用。有人知道如何解决我的问题吗?

imshow(imread('theImage.png'),'Parent',handles.axes3);

imrotate(handles.axes3, 45); %simply doesn't work
set(handles.axes3,'Rotation',45); %no 'Rotation' in axes
%I don't even know how to use just rotate()

需要说明的是,无法旋转 axes 对象。但是您可以旋转图像数据,然后以旋转后的状态再次显示它们。

函数 imrotate 会旋转您在输入中提供的 "image data" 和 return 表示旋转图像数据的矩阵。所以在你的情况下,不要在读取文件后直接显示。获取变量中的图像数据,用 imrotate 旋转它,然后显示旋转后的图像(或者用它做你需要的)

举个例子:

img = imread('peppers.png') ; %// get the image data into the variable "img"
img2 = imrotate(img,90) ;     %// get the "rotated" image data into the variable "img2"

%// display both "img" and "img2"
subplot(1,2,1) ; imshow( img ) 
subplot(1,2,2) ; imshow( img2 ) 

将产生: