发布网友 发布时间:2022-04-26 14:37
共2个回答
热心网友 时间:2022-06-29 07:09
编辑以下脚本(New Script)并运行即可得到预期效果:
clear all
clc
I = imread('lena.jpg'); %读取并显示原图 I
subplot(1,2,1)
imshow(I)
title('原图像')
Ir = I(:,:,1); %由于是彩色图像,故需要对三原色分别转置
Ig = I(:,:,2);
Ib = I(:,:,3);
[m,n] = size(Ir);
Gr = zeros(m,n); %定义三原色转置后的矩阵
Gg = zeros(m,n);
Gb = zeros(m,n);
for i = 1 : m %利用循环实现转置操作
for j = 1 : n
Gr(j,i) = Ir(i,j);
Gg(j,i) = Ig(i,j);
Gb(j,i) = Ib(i,j);
end
end
Gr1 = cast(Gr,'double'); %三原色矩阵重新合成彩色图像
Gg1 = cast(Gg,'double');
Gb1 = cast(Gb,'double');
g = cat(3,Gr1,Gg1,Gb1);
subplot(1,2,2) %显示转置后图像
imshow(uint8(g))
title('图像转置')
运行结果:
追问GrLr是神马?追答都是自定义的变量,这里我用G、g代表转置后的图像,I代表原图像,r、g、b对应red,green,blue三原色,所以Gr就是转置后的红色矩阵,Ir就是转置前的红色矩阵,其他的例如Gr1就是转置后的红色矩阵归一化处理得到的矩阵的意思...
这些变量都可以自己去按照其含义定义,以上只是我的命名思路。
热心网友 时间:2022-06-29 07:10
如果原图片是二维矩阵A,灰度图或者索引图像
那么转置就是A.'
很简单
如果原来的图片是三维矩阵(unit8 mxnx3)第三维存放RGB信息
permute(A,[2 1 3]);
返回第一,第二维转置的矩阵