morton scanning for image size of 256*256 .
2 次查看(过去 30 天)
显示 更早的评论
i found out this as for 4*4 matrix from matlab central
clc;
clear all;
close all ;
n=2;
ind=morton(n);
a=reshape(1:4^n,2^n,2^n);
disp(a)
here is the matlab function
function ind=morton(n);
% MORTON(N) return the morton permutation order for array of size 2^N
% e.g.
% n=2;
% matrix size is 2^n
% ind=morton(n);
% d=fix(rand(2^n,2^n)*10);
% disp(d)
% disp(d(ind))
linind4=(1:4^n)-1; %start index count for array at zero
ind4str=dec2base(linind4,4); %convert indices to base-4
b1=dec2bin(str2num(ind4str(:,1))); %split each base-4 into two base-2numbers
b2=dec2bin(str2num(ind4str(:,2)));
rb=[b1(:,1) b2(:,1)]; %the rows are given by the first bits of b1 and
b2
cb=[b1(:,2) b2(:,2)]; %the columns are given by the second bits of b1 and b2
r=bin2dec(rb)+1; %convert the row from bit to decimal
c=bin2dec(cb)+1; %convert column
ind=[2^n*(c-1)+r]'; %make a linear row index into array for easyaddressing
%morton.m ends
----------------------------------------------------
i require to do this for whole image with out looping infinitely ..
can you please any one give the way by block processing
回答(1 个)
Walter Roberson
2012-3-2
6 个评论
Walter Roberson
2012-3-7
For the purpose of your morton code, n should be 8.
But that doesn't have anything to do with the code I referred you to, which is the code you asked about in your comment here. Do not use both routines together: only use one of them.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!