Image MATLAB中的图像转置
如何使用RGB值转置图像?也就是说,第1行中的所有像素都应该成为第1列中的像素,依此类推 对于简单的1D情况,这是:Image MATLAB中的图像转置,image,matlab,image-processing,Image,Matlab,Image Processing,如何使用RGB值转置图像?也就是说,第1行中的所有像素都应该成为第1列中的像素,依此类推 对于简单的1D情况,这是: B=A'; 我在找类似的东西 img=imread('name.bmp'); R=R'; G=G'; B=B'; 然后以某种方式将它们组合成新的图像。您可以使用short&simple- 基本上,它将行与列交换,以保持第三维度的完整性,即转置每个3D切片。此方法的优点是,即使您在三维中有4个切片,它也可以工作,例如,对于深度信息通常存储为dim3中第4个切片的图像。仅为了完
B=A';
我在找类似的东西
img=imread('name.bmp');
R=R';
G=G';
B=B';
然后以某种方式将它们组合成新的图像。您可以使用short&simple-
基本上,它将行与列交换,以保持第三维度的完整性,即转置每个3D切片。此方法的优点是,即使您在三维中有4个切片,它也可以工作,例如,对于深度信息通常存储为dim3中第4个切片的图像。仅为了完整性,您可以使用,但顺序确实很重要。在这里,我们翻转柱(这就是2),然后旋转90度
imshow(imrotate(flipdim,2,90))
如果我们先旋转,我们必须翻转行(这就是1)
imshow(flipdim(imrotate(im,90),1))
由于在Matlab中“未定义ND阵列上的转置”,您可以分别转置每个通道:
[r,c,z] = size(im);
tmp = zeros(c,r,z);
for k=1:z
tmp(:,:,k) = im(:,:,k)';
end
3D转置是我所看到的
permute
的第一个实际应用。。。我从你那里学到了这一点+1.@rayryeng IP中不再有循环!;)哇,直到今天我才知道permute
可以这样使用!这比提出的其他解决方案慢。尽可能避免for
循环
[r,c,z] = size(im);
tmp = zeros(c,r,z);
for k=1:z
tmp(:,:,k) = im(:,:,k)';
end