clear all; close all; clc;
Pic = imread('cameraman.tif');
figure,imshow(Pic);
Blocks = mat2cell(Pic, 64*ones(1,4), [64 64 64 64]);
addr(1,:) = [1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4];
addr(2,:) = [1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4];
mixedAddr = randperm(16);
newAddr = addr(:,mixedAddr);
mixBlocks = cell(4,4);
for k=1:16,
mixBlocks{k} = Blocks{newAddr(1,k),newAddr(2,k)};
end
mixPic = cell2mat(mixBlocks);
h=figure;imshow(mixPic);
for loopidx=1:20,
clicked = fix(ginput(2)/64+1);
clicked = fliplr(clicked);
tmp1 = mixBlocks{clicked(1,1),clicked(1,2)};
tmp2 = mixBlocks{clicked(2,1),clicked(2,2)};
mixBlocks{clicked(1,1),clicked(1,2)} = tmp2;
mixBlocks{clicked(2,1),clicked(2,2)} = tmp1;
mixPic = cell2mat(mixBlocks);
close(h);
h=figure;imshow(mixPic);
end