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

9 views (last 30 days)
MM
MM on 27 Sep 2021
Edited: Adam Danz on 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

Accepted Answer

Adam Danz
Adam Danz on 27 Sep 2021
Edited: Adam Danz on 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)

More Answers (1)

yanqi liu
yanqi liu on 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));

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!