How can I create a binary mask?

7 次查看(过去 30 天)
I want to create a binary mask, where there will be random white dots in the area. But it will be more dense in the middle. For the reference please check the image.
row = 320;
col = 320;
trnMask = zeros(row,col)
trnMask = rand(320);
figure,imshow(trnMask);
I tried this code. But it doesn't work.

采纳的回答

DGM
DGM 2022-5-26
编辑:DGM 2022-5-26
Without having clear technical goals, I'm just going to assume that no technical requirements exist for shape or density. I'm going to treat this as a rudimentary dithering operation.
% image size
s = 320;
% generate some gaussian profile or something?
sg = s*0.15; % gaussian shape parameter
os = 0.05; % background noise
R = linspace(-s/2,s/2,s);
prof = exp(-(R.^2 + R.'.^2)/(2*sg^2));
prof = prof*(1-os) + os;
% create random mask
mask = rand(s);
% binarize profile by comparing gray levels to mask
out = mask <= prof;
imshow(out)

更多回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by