轉怎麼轉用RGB值的圖像?那就是第一行的所有像素都應該成爲第一列的像素,依此類推。圖片在MATLAB
對於一個簡單的1D情況是這樣的:
B=A';
我像
img=imread('name.bmp');
R=R';
G=G';
B=B';
再之後,讓他們組裝成一個新的形象不知何故。
轉怎麼轉用RGB值的圖像?那就是第一行的所有像素都應該成爲第一列的像素,依此類推。圖片在MATLAB
對於一個簡單的1D情況是這樣的:
B=A';
我像
img=imread('name.bmp');
R=R';
G=G';
B=B';
再之後,讓他們組裝成一個新的形象不知何故。
您可以使用短&簡單permute
-
permute(img,[2 1 3])
基本上它的列保持第三維完整的,即轉置每個3D片交換的行。這種方法的優點在於,即使在第三維中有4個切片,例如對於深度信息通常作爲dim3中的第四個切片存儲的圖像,它也可以工作。
由於 「移調ND陣列上沒有定義」 在Matlab,可以單獨移調每個通道:
[r,c,z] = size(im);
tmp = zeros(c,r,z);
for k=1:z
tmp(:,:,k) = im(:,:,k)';
end
這比所提出的其他解決方案慢。儘可能避免使用for循環 – Alexander
3D反位置是我看到的'permute'的第一個實際用途......並且我從你那裏學到了這一點。 +1。 – rayryeng
@rayryeng IP中沒有更多的循環! ;) – Divakar
哈哈哈哈不能說它更好。 – rayryeng