Convert RGB image to grayscale
im2gray function converts RGB images to grayscale by eliminating
the hue and saturation information while retaining the luminance.
Read a truecolor (RGB) image into the workspace from a file and display it.
RGB = imread('example.tif'); figure; imshow(RGB);
Convert the RGB image into a grayscale image.
I = im2gray(RGB);
Display the converted grayscale image.
RGB— Truecolor image
Truecolor image, specified as an m-by-n-by-3
im2gray also accepts
m-by-n numeric arrays (grayscale images) and
returns them unmodified.
If you have Parallel Computing Toolbox™ installed,
RGB can also be a
I— Grayscale image
Grayscale image, returned as an m-by-n numeric
array. If the input to
im2gray is a grayscale image, the output image
I is the same as the input image.
If you have Parallel Computing Toolbox installed, then
I can also be a gpuArray.
im2gray function is identical to
except that it can accept grayscale images as inputs, returning them unmodified. The
rgb2gray function returns an error if the input image is a grayscale
image. If you use the
im2gray function, code like this loop is no
if ndims(I) == 3 I = rgb2gray(I); end
rgb2gray function, the
function does not accept colormaps as an input. To convert a colormap to grayscale, use
im2gray function converts RGB values to grayscale values by forming
a weighted sum of the R, G, and B
0.2989 * R + 0.5870 * G + 0.1140 * B
These are the same weights used by the
rgb2ntsc (Image Processing Toolbox) function to compute the Y component.
The coefficients used to calculate grayscale values in the
function are identical to those used to calculate luminance (E'y) in Rec.ITU-R BT.601-7 after
rounding to three decimal places.
Rec.ITU-R BT.601-7 calculates E'y using the following formula:
0.299 * R + 0.587 * G + 0.114 * B
When generating code, if you choose the generic
MATLAB Host Computer target platform,
generates code that uses a precompiled, platform-specific shared library. Use of a shared
library preserves performance optimizations but limits the target platforms for which code
can be generated.
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).