我正在寻找一种在Matlab中用轴旋转图像的方法。我尝试使用rotate
和imrotate
来实现这一目标,但这两项功能都不适用于我。有人知道如何解决我的问题吗?
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()
答案 0 :(得分:2)
为了清楚起见,无法旋转axes
对象。但您可以旋转图像数据,然后在旋转状态下再次显示它们。
函数imrotate
会旋转"图像数据"您提供输入并返回表示旋转图像数据的矩阵。因此,在您的情况下,请勿在读取文件后直接显示。获取变量中的图像数据,使用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 )
会产生: