Grayscale image = Max(RGB)

10 visualizzazioni (ultimi 30 giorni)
Adela
Adela il 4 Ott 2012
Commentato: Image Analyst il 28 Ott 2022
Please take a look at attached photo.
i was asked to get the RGB's max pixel for the gray scale.
how do i do that?
gray = max(RGB)

Risposte (3)

Walter Roberson
Walter Roberson il 4 Ott 2012
I might be misinterpreting, but I think you are asking for
grayImage = max(YourImage, 3);
  8 Commenti
Jan
Jan il 4 Ott 2012
@Adela: You professor is payed for explaining such details. Ask him. He will remember your activity and curiosity.
Adela
Adela il 4 Ott 2012
it was part of my project and he is not going to give more details. Probably he wants me to extract the red component, because most of my sample images is pinky.

Accedi per commentare.


Adam Mackay
Adam Mackay il 28 Ott 2022
Max RGB selects the channel with the highest decimal value
Ie: 128, 10, 35 would become 255,0,0 since the red channel has the highest value
In the case of grey scale or grey images
you would normally have all channels equal, for example
127,127,127, in which case there are no channels with the heighest value, so for that particular pixel the values would remain the same for all channels (unchanged)
An example can be observed in this image, in which the colour of the jumper or sweater remains grey for a large portion of it.

Image Analyst
Image Analyst il 28 Ott 2022
Here is code with all the methods discussed here:
rgbImage = imread('peppers.png');
subplot(2, 2, 1);
imshow(rgbImage);
impixelinfo;
title('Original Image');
% Get the max for each pixel, and the channel in which the max occurs.
[grayImage, channelImage] = max(rgbImage, [], 3);
subplot(2, 2, 2);
imshow(grayImage);
impixelinfo;
title('Max of each color channel');
subplot(2, 2, 3);
imshow(channelImage, []);
impixelinfo;
title('Channel where max value is');
% Assign the 1's to red, 2's to green, and 3's to blue.
z = zeros(size(rgbImage, 1), size(rgbImage, 2), 'uint8');
r = 255 * uint8(channelImage == 1);
g = 255 * uint8(channelImage == 2);
b = 255 * uint8(channelImage == 3);
rgbImageMax = cat(3, r, g, b);
subplot(2, 2, 4);
imshow(rgbImageMax, []);
impixelinfo;
title('MAX image (Adam''s definition)');

Categorie

Scopri di più su Image Processing Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by