How to create an image that has random chunks of black and white pixels

13 vues (au cours des 30 derniers jours)
MM
MM le 27 Sep 2021
Modifié(e) : Adam Danz le 28 Sep 2021
I would like to create an image (1920 x 1080) that looks like the image below. How do I create something like this? Black and white spots can be randomly placed

Réponse acceptée

Adam Danz
Adam Danz le 27 Sep 2021
Modifié(e) : Adam Danz le 28 Sep 2021
Specify imageSize and blockScale to create randomly placed blocks of black and white pixels.
imageSize = [1920,1080]; % [width, height]
blockScale = 40; % larger values create larger blocks
blocksize = round(imageSize/blockScale);
data = randi(2,fliplr(blocksize))-1;
B = imresize(data, fliplr(imageSize),'nearest');
imagesc(B)
colormap([0 0 0; 1 1 1])
axis equal
axis tight
set(gca, 'xtick', [], 'ytick', [], 'LineWidth', 5) % add frame
If you just want random black and white pixels,
B = randi(2,[1080,1920])-1;
figure()
imshow(B)

Plus de réponses (1)

yanqi liu
yanqi liu le 28 Sep 2021
clc; clear all; close all;
% init image (1920 x 1080)
A = zeros(1080,1920);
% choose white
ind1 = randperm(numel(A(:)));
rate = 0.3;
xt = ind1(1:round(length(ind1)*rate));
A(xt) = 1;
A([1 end],:)=0;
A(:,[1 end])=0;
figure; imshow(logical(A));

Catégories

En savoir plus sur Red dans Help Center et File Exchange

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by