i want a randomly scramble of a divided image into 4 blocks
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
please if i have image 256X256 and i divided it into 4 blocks, how can i scramble the blocks randomly or change the orders of the 4 blocks ,then i stitch them together again after this permutation or this changing inorder to change the parameters of the image and got a cihper one??
should i convert it to vector and then permuted or i can permuted it in blocks case?? please i want the code
0 commentaires
Réponses (2)
Jan
le 23 Avr 2021
Modifié(e) : Jan
le 23 Avr 2021
img = uint8(((0:255) + (0:255).') / 2); % Test image
s = size(img);
% Split image to blocks:
img4 = reshape(img, s(1) / 2, 2, s(2) / 2, 2);
img4 = permute(img4, [1, 3, 2, 4]);
img4 = reshape(img4, s(1)/2, s(2)/2, 4);
% Mix:
img4 = img4(:, :, randperm(4));
% Get matrix again:
img4 = reshape(img4, s(1)/2, s(2)/2, 2, 2);
img4 = permute(img4, [1, 3, 2, 4]);
result = reshape(img4, s);
imagesc(result)
Or:
img = uint8(((0:255) + (0:255).') / 2); % Test image
s = size(img);
C = mat2cell(img, [s(1)/2, s(1)/2], [s(2)/2, s(2)/2]);
C(:) = C(randperm(4));
result = cell2mat(C);
imagesc(result)
0 commentaires
Voir également
Catégories
En savoir plus sur Computer Vision with Simulink dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!