How to Select random data from matrix ?
1 view (last 30 days)
Show older comments
a = imread('lena512.bmp');
%image(a);
title('main img');
colormap(gray(256));
daspect([1 1 1]);
% now i want to take the half of the pixels from this img generated randomly and other half default(white,black doesnt matter ,and save it to other matrix like image2 with the same size.
5 Comments
Adam Danz
on 22 Oct 2019
But it's a good solution if the image is 2D. Feel free to post that idea to the answers section.
Answers (1)
Adam Danz
on 22 Oct 2019
Edited: Adam Danz
on 22 Oct 2019
"i want to take the half of the pixels from this img generated randomly and other half default(white,black doesnt matter ,and save it to other matrix like image2 with the same size."
This assumes you're working with an RGB truecolor image that has 3 dimensions. It chooses half of your pixels randomly and assigns [0,0,0] to their RGB values.
a = imread('lena512.bmp');
imSize = numel(a)/size(a,3); % Number of elements per 'RGB' (3rd dimension)
randIdx = randsample(imSize,floor(imSize/2)); % Randomly choose half of the indices
randIdx = randIdx(:) + imSize.*(0:size(a,3)-1); % Duplicate the indices to represent each RGB element
image2 = a; % Duplicate image
image2(randIdx(:)) = 0; % Replace the RGB values at each randomly chosen position (use 255 for white)
image(image2) % Show updated image
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!