图像洗牌和切片

时间:2017-01-24 10:42:09

标签: image-processing

这是我将512 * 512图像切割成64 * 64 * 64维度的立方体的代码。但是当我再次将它重新塑造成2D阵列时,为什么它没有给我原始的图像。我做了不正确的事情请帮助。

 clc; 

 im=ind2gray(y,ymap);
 % im=imresize(im,0.125);
 [rows ,columns, colbands] = size(im)



    end
  image3d=reshape(image3d,512,512);
  figure,imshow(uint8(image3d));

2 个答案:

答案 0 :(得分:0)

只是一个小小的暗示。

P(:,:,1) = [0,0;0,0]
P(:,:,2) = [1,1;1,1]
P(:,:,3) = [2,2;2,2]
P(:,:,4) = [3,3;3,3]

B = reshape(P,4,4)

B =

     0     1     2     3
     0     1     2     3
     0     1     2     3
     0     1     2     3

因此,您可以自行更改切片或进行重塑。

答案 1 :(得分:0)

如果我理解你的问题,你可以查看下面的代码来执行相同的操作。

% Random image of the provided size 512X512
imageX = rand(512,512)
imagesc(imageX)

% Converting the image "imageX" into the cube of 64X64X64 dimension
sliceColWise = reshape(imageX,64,64,64)
size(sliceColWise)

% Reshaping the cube to obtain the image original that was "imageX", 
% in order to observe that they are identical the difference is plotted
imageY = reshape(sliceColWise,512,512);
imagesc(imageX-imageY)

n.b:从MATLAB帮助您可以看到重塑形式按列工作

  

重塑(X,M,N)或重塑(X,[M,N])返回M-by-N矩阵       其元素从X列中逐列获取。出现错误       如果X没有M * N个元素。