如何对已经置换的矩阵执行反向置换?

时间:2015-04-21 04:12:15

标签: matlab image-processing matrix permutation

我之前发过一个关于如何交错R,G和B向量的问题( How to form a vector from RGB matrices)。我想反转对矩阵执行的操作。我尝试了下面的代码,但我无法获得输入。因为ipermute是我尝试使用它的permute的确切反转。

C  = ipermute(H, [3 1 2])

我需要将置换的矢量分开并将其更改为单独的平面,然后最终重新组合平面以获得三维图像。以下是我用来置换三个平面的代码。

 A=imread('C:\Users\Desktop\lena.jpg');

 R = A(:, :, 1);
 G = A(:, :, 2);
 B = A(:, :, 3);

 R1 = reshape(R.',1,[]);
 G1 = reshape(G.',1,[]);
 B1 = reshape(B.',1,[]);

 H = permute(A, [3 1 2]);

 N = numel(A)/3;
 V = H(1 : N);
 W = H(N + 1 : 2*N);
 X = H(2*N + 1 : end);

我需要完全撤消此操作以获取我已经置换的原始图像。请提前帮助感谢。

1 个答案:

答案 0 :(得分:0)

  

H2 = ipermute([V,W,X],[3,1,2]);

     

H3 =重塑(H2,3,256,256);

     

H4 = ipermute(H3,[3,1,2]);

H4是原始A