Find and plot the variation of R, G, and B values of the image
3 views (last 30 days)
Show older comments
Garrett Nagy
on 30 Sep 2015
Commented: Walter Roberson
on 4 Oct 2015

Looking for help on finding and plotting the values of R, G, and B of the attached image. Also to find pixel locations of the dark lines and the wavelength of the dark lines. I am new to MatLab and could use a little help. Thank you in advance.
6 Comments
Accepted Answer
Walter Roberson
on 30 Sep 2015
RGB = imread('YourImage.tif');
Red = RGB(:,:,1);
histogram(Red(:))
2 Comments
Walter Roberson
on 4 Oct 2015
It sounds like your tif might be pseudocolor
[img, map] = imread('YourImage.tif');
and check to see if img comes out 2 dimensional and map comes out non-empty. If so then you can use ind2rgb() to convert it to RGB
More Answers (1)
Image Analyst
on 4 Oct 2015
Like I said before, you can't get wavelength from an RGB color. But if what you really want is a plot of the red signal, green signal, and blue signal as a function of distance along your x axis, then you can do that with this code:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
imtool close all; % Close all imtool figures.
clear; % Erase all existing variables.
workspace; % Make sure the workspace panel is showing.
fontSize = 20;
% Open an image.
% Browse for the image file.
[baseFileName, folder] = uigetfile('*.jpg', 'Specify a JPG image file');
fullImageFileName = fullfile(folder, baseFileName);
if folder == 0
return;
end
% Read in image into an array.
[rgbImage, storedColorMap] = imread(fullImageFileName);
[rows, columns, numberOfColorBands] = size(rgbImage)
% If it's monochrome (indexed), convert it to color.
if numberOfColorBands < 3
uiwait(warndlg('It must be a color image'));
end
% Display the original image.
subplot(2, 1, 1);
imshow(rgbImage);
title('RGB Image', 'FontSize', fontSize, 'Interpreter', 'None');
axis on;
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
% Get rid of tool bar and pulldown menus that are along top of figure.
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
% Give a name to the title bar.
set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off')
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
subplot(2, 1, 2);
% Plot the red signal
plot(redChannel(1, :), 'r', 'LineWidth', 2);
grid on;
hold on;
% Plot the green signal
plot(greenChannel(1, :), 'g', 'LineWidth', 2);
% Plot the blue signal
plot(blueChannel(1, :), 'b', 'LineWidth', 2);
title('Colors as function of distance along x axis', 'FontSize', fontSize, 'Interpreter', 'None');
xlabel('Distance in Pixels', 'FontSize', fontSize');
ylabel('Gray Levels', 'FontSize', fontSize');
legend('Red', 'Green', 'Blue');

In addition, see the attached demo below, colormaps_plotted.m, where I do the same thing for any of the standard colormaps that you select.
0 Comments
See Also
Categories
Find more on Red 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!