how to get random pixel index from binary image with value 1 ?
Show older comments
I have a binary image of large size (256x256). In this image most of the pixel values are zero and some of them are 1. I need to get only 100 randomly chosen pixel coordinates with value 1 from image.
Answers (1)
Guillaume
on 4 Dec 2017
pixels = [ones(1, 100), zeros(1, 256*256-100)];
img = reshape(pixels(randperm(numel(pixels))), 256, 256);
2 Comments
Ahlam Benahmeida
on 16 Sep 2018
can you help me please, if I have a color image and I want to extract the random pixels value and save them in a new matrix?
Walter Roberson
on 16 Sep 2018
num_needed = 100;
[rows, cols, panes] = size(YourImage);
selected_indices = randperm(rows * cols, num_needed);
[r, c] = ind2sub([rows, cols], selected_indices(:));
random_pixel_r = YourImage(r, c, ones(num_needed,1));
random_pixel_g = YourImage(r, c, 2*ones(num_needed,1));
random_pixel_b = YourImage(r, c, 3*ones(num_needed,1));
random_new_image = cat(3, random_pixel_r, random_pixel_g, random_pixel_b);
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!