蛇扫描订购

时间:2014-12-24 09:27:57

标签: matlab

我已经写了蛇扫描订购,但我不知道它是对还是错! 我首先将256 * 256矩阵转换为8 * 8矩阵,并在这些小矩阵中进行蛇形扫描排序。 你能告诉我如何显示结果向量吗?

pic=rgb2gray(pic1);
pic=uint8(pic);
C = mat2cell(pic,[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 ],[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]);
celldisp(C);
 % % % % % Converting the cell arrays to vectors in snake scan ordering form % % % % 
X=[];
n=0;
for i=1:32; 
for j=1:32;

    n=n+1;
   C{i,j}=C{i,j}';
    Vn= reshape(C{i,j},1,[]);
    Vn(5:8)=fliplr (Vn(5:8));
    Vn(13:16)=fliplr (Vn(13:16));
    X=[X  Vn];
end 
end

1 个答案:

答案 0 :(得分:1)

对于矩阵M的蛇形扫描排序:

M = M.'; %'// matlab works column major - so we first transform the matrix
M(:, 2:2:end) = M(end:-1:1, 2:2:end); %// filp up-down every second column
snake = M(:).'; %'// convert to a single vector.

您可以看到here它的工作原理。