Clear Filters
Clear Filters

Generate all colour permutations of an image

2 views (last 30 days)
Hello,
I am looking to take the mondrian art image below and generate all the possible colour permutations. Does anyone have advice as to how to go about this?

Accepted Answer

Chunru
Chunru on 25 Aug 2021
x = imread("image.png");
image(x)
% unique colors in the image
uc = unique(reshape(x, numel(x)/3, 3), 'rows');
nc = size(uc, 1);
fprintf('There are %d unique colors\n', nc);
p = perms(1:nc);
fprintf('There are %d permutations of colors\n', size(p, 1));
x2 = reshape(x, numel(x)/3, 3);
for i=1:size(p,1)
xp = x2;
for j=1:nc
idx = all(x2 == uc(j,:), 2);
for k=1:3
xp(idx, k) = uc(p(i,j), k);
end
end
xp = reshape(xp, size(x));
image(xp);
drawnow
pause(0.05)
end

More Answers (0)

Categories

Find more on Particle & Nuclear Physics 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!