image scrambling in matlab
4 次查看(过去 30 天)
显示 更早的评论
i want to simply divide a given digital image into small segments and scramble them(jumble). thus encrypting them and also decrypt them.plz help
3 个评论
采纳的回答
Jan
2013-8-6
编辑:Jan
2013-8-7
If you are talking about an RGB image:
img = rand(100, 100, 3);
block = reshape(img, [10, 10, 10, 10, 3]);
block = permute(block, [1, 3, 2, 4, 5]);
block = reshape(block, [100, 10, 10, 3]);
mix = randperm(100);
scrambled = reshape(block(mix, :, :, :), 100, 100, 3); % EDITED: reshape added
And the descrambling runs the other way around.
7 个评论
Manpreet
2015-4-27
Sir, On reshaping we will get a new image which will contains scrambled value only not image pixels value.
Walter Roberson
2015-5-4
No, Manpreet, the code Jan provided moves all three bit planes for a pixel together and does not change the representation. Every output pixels has an RGB that can be tracked directly to an input pixel. If you wish to verify this experimentally then replace Jan's original line
img = rand(100,100,3);
with
img = repmat(reshape(1:100*100)/(100*100),[100,100]), [1, 1, 3]);
this will produce an RGB image containing shades of grey, with the R, G, and B all being the same. You can image() it to observe this. Then when you look at the resulting image "scrambled" you will find that it continues to contain shades of grey and that the R, G, and B planes for any one location are all the same, and differ from every other location; this establishes that the planes were all moved together and establishes that the values are just moved around, not calculated or interpolated.
更多回答(1 个)
Image Analyst
2013-8-5
Try the File Exchange, and you might find similar things to what you want, such as the 15 tile sliding puzzles:
1 个评论
Image Analyst
2013-9-5
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!