matlab如何将图像转90度?

Fre*_*Ren 2 matlab image-processing reshape

我有100个灰色图像(256*256像素),它们存储在faces.mat文件中.所以在faces.mat文件中,有100行和65536(256*256)列.每行代表一个图像.

现在我想重塑面部矩阵并显示图像.

我用:

for i=1:N    
    imagesc(reshape(faces(i,:)'),256,256));
    colormap gray;
end
Run Code Online (Sandbox Code Playgroud)

但我发现我的图像变成了90度! 在此输入图像描述

有人能告诉我如何正确转动图像吗?当我把它们变成face.mat时,我处理的图像是否错误?下面是我写的将图像存储到矩阵的代码.

function ImageGenerate
Files = dir(strcat('D:\face\','*.tiff'));
LengthFiles = length(Files);
faces = [];
for i = 1:LengthFiles;
    Img = imread(strcat('D:\face\',Files(i).name));
    temp = im2double(Img);
    [row, col] = size(temp);
    vector = [];
    for i =1 : row
        for j = 1:col
            vector = [vector temp(i,j)];
        end
    end
    faces = [faces;vector];
end
save('faces2.mat','faces');
Run Code Online (Sandbox Code Playgroud)

Sha*_*hai 5

对于具有90度int乘数的旋转图像,有以下rot90功能:

rot90(Img);
Run Code Online (Sandbox Code Playgroud)

imrotate在其他答案中提出的转置更有效,更通用.