Extracting pixels from an image random

Hello,
How can I extract 100 pixels color randomly from an image ?

 採用された回答

Guillaume
Guillaume 2019 年 6 月 1 日

0 投票

One way:
row = randi(size(yourimage, 1), 100, 1); %select 100 row coordinates at random
col = randi(size(yourimage, 1), 100, 1); %and 100 columns to go with it
rgb = yourimage(sub2ind(size(yourimage), repmat(row, 1, 3), repmat(col, 1, 3), repmat(1:3, 100, 1)));
%for pretty display
table(row, col, rgb)

2 件のコメント

andrei alex
andrei alex 2019 年 6 月 1 日
Thank you .
And if I have 200 images and I want to extract 100 pixels for each?
Guillaume
Guillaume 2019 年 6 月 1 日
Wrap that in a loop over your 200 images.

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2019 年 6 月 1 日

0 投票

Here is another way:
% Load standard demo RGB image:
rgbImage = imread('peppers.png');
% Extract the individual red, green, and blue color channels:
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
% Get 100 random locations:
locations = randperm(numel(redChannel), 100)
% Get R, G, and B values at those locations:
redValues = redChannel(locations)
greenValues = greenChannel(locations)
blueValues = blueChannel(locations)

カテゴリ

ヘルプ センター および File ExchangeImage Processing Toolbox についてさらに検索

製品

リリース

R2019a

質問済み:

2019 年 6 月 1 日

回答済み:

2019 年 6 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by