how to get random pixel index from binary image with value 1 ?

5 vues (au cours des 30 derniers jours)
bamini thavarajah
bamini thavarajah le 4 Déc 2017
Commenté : Walter Roberson le 16 Sep 2018
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.

Réponses (1)

Guillaume
Guillaume le 4 Déc 2017
pixels = [ones(1, 100), zeros(1, 256*256-100)];
img = reshape(pixels(randperm(numel(pixels))), 256, 256);
  2 commentaires
Ahlam Benahmeida
Ahlam Benahmeida le 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
Walter Roberson le 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);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by