how to divide a 512*512 image block by pseudo randomly permuting into 8*8 blocks?
3 views (last 30 days)
Show older comments
the data hider pseudo-randomly selects Np encrypted pixels that will be used to carry the parameters for data hiding.here,Np is a small positive integer,for example,Np=20.the other(N-Np) encrypted pixels are pseudo randomly permuted and divided into number of groups,each of which contains L pixels.here what is the permutation needed and the code used to divide?
1 Comment
Walter Roberson
on 14 Aug 2012
Please review the guide to tags and add tags to this question; see http://www.mathworks.co.uk/matlabcentral/answers/43073-a-guide-to-tags
Answers (1)
the cyclist
on 14 Aug 2012
Edited: the cyclist
on 14 Aug 2012
I thought I understood the title of your post, but I have to admit I did not really understand your question at all. But, maybe this will help a tiny bit. It randomizes the 4,096 blocks of size 8*8 that tile your 512*512 array.
% Pretend data
A = rand(512);
% Random linear index to the blocks
r = randperm(4096)';
% (i,j) subscripts instead of linear index
[i,j] = ind2sub([64 64],r)
% Example of grabbing the 37th randomly found block
whichBlock = 37;
randomBlock = A(8*(i(whichBlock)-1)+(1:8),8*(j(whichBlock)-1)+(1:8))
1 Comment
Tia
on 6 May 2013
Hello Sir, After randomBlock, could you tell me how to show all randomBlock in 512x512array? i followed your codes,and i added loop for example
for whichBlock = 1:64;
randomBlock = A(8*(i(whichBlock)-1)+(1:8),8*(j(whichBlock)-1)+(1:8));
end
i want random 64block.then, what should i do?
thank you
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!