divide an image into blocks

How can I divide an image into a specific number of blocks, stir them and get a new messy image?

Answers (1)

Matt J
Matt J on 26 Sep 2019
Edited: Matt J on 26 Sep 2019
Using mat2tiles,
it is very easy:
initialImage=imread('sherlock.jpg');
blocksize=[40,40,inf]; %must divide evenly into size(initialImage)
C=mat2tiles(initialImage,blocksize);
C(:)=C(randperm(numel(C)));
messyImage=cell2mat(C);
figure;
subplot(1,2,1);
imshow(initialImage);
subplot(1,2,2)
imshow(messyImage)

Asked:

on 25 Sep 2019

Edited:

on 26 Sep 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!