imread
Read image from graphics file
Syntax
Description
specifies format-specific options using one or more name-value pair arguments, in addition to any of the input arguments in the previous syntaxes.A
= imread(___,Name,Value
)
[
additionally returns the image transparency. This syntax applies only to PNG, CUR, and ICO files. For PNG files,A
,map
,transparency
] = imread(___)transparency
is the alpha channel, if one is present. For CUR and ICO files, it is the AND (opacity) mask.
Examples
Read and Display Image
Read a sample image.
A = imread('ngc6543a.jpg');
imread
returns a 650-by-600-by-3 array,A
.
Display the image.
image(A)
Convert Indexed Image to RGB
Read the first image in the sample indexed image file,corn.tif
.
[X,cmap] = imread('corn.tif');
The indexed imageX
is a 415-by-312 array of typeuint8
. The colormapcmap
is a 256-by-3 matrix of typedouble
, therefore there are 256 colors in the indexed image. Display the image.
imshow(X,cmap)
Convert the indexed image to an RGB image. The result is a 415-by-312-by-3 array of typedouble
.
RGB = ind2rgb(X,cmap);
Check that values of the RGB image are in the range [0, 1].
disp(['Range of RGB image is [',num2str(min(RGB(:))),', ',num2str(max(RGB(:))),'].'])
Range of RGB image is [0.0078431, 0.97647].
Read Specific Image in Multipage TIFF File
Return Alpha Channel of PNG Image
Return the alpha channel of the sample image,peppers.png
.
[X,map,alpha] = imread('peppers.png'); whosalpha
Name Size Bytes Class Attributes alpha 0x0 0 double
No alpha channel is present, soalpha
is empty.
Read Specified Region of TIFF Image
Read a specific region of pixels of the sample image,corn.tif
.
Specify the'PixelRegion'
parameter with a cell array of vectors indicating the boundaries of the region to read. The first vector specifies the range of rows to read, and the second vector specifies the range of columns to read.
A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});
imread
reads the image data in rows 1-2 and columns 2-5 fromcorn.tif
and returns the 2-by-4 array,A
.
Input Arguments
filename
—Name of graphics file
character vector|string scalar
Name of graphics file, specified as a character vector or string scalar.
Depending on the location of your file,filename
can take on one of these forms.
Location |
Form |
||||||||
---|---|---|---|---|---|---|---|---|---|
Current folder or folder on the MATLAB®path | Specify the name of the file in Example: |
||||||||
File in a folder |
If the file is not in the current folder or in a folder on the MATLAB path, then specify the full or relative path name. Example: Example: |
||||||||
URL | If the file is located by an internet URL, then Example: |
||||||||
Remote Location |
If the file is stored at a remote location, then
Based on your remote location,
For more information, seeWork with Remote Data. Example: |
For information on the bit depths, compression schemes, and color spaces supported for each file type, seeAlgorithms.
Data Types:char
|string
fmt
—Image format
character vector|string scalar
Image format, specified as a character vector or string scalar indicating the standard file extension. Callimformats
to see a list of supported formats and their file extensions.
Example:'png'
Data Types:char
|string
idx
—Image to read
integer scalar|vector of integers
Image to read, specified as an integer scalar or, for GIF files, a vector of integers. For example, ifidx
is 3, thenimread
returns the third image in the file. For a GIF file, ifidx
is1:5
, thenimread
returns only the first five frames. Theidx
argument is supported only for multi-image GIF, CUR, ICO, and HDF4 files.
When reading multiple frames from the same GIF file, specifyidx
as a vector of frames or use the'Frames','all'
name-value pair argument. Because of the way that GIF files are structured, these syntaxes provide faster performance compared to callingimread
in a loop.
For HDF4 files,idx
corresponds to the reference number of the image to read. Reference numbers do not necessarily correspond to the order of the images in the file. You can useimfinfo
to match image order with reference number.
Example:3
Data Types:double
Name-Value Pair Arguments
Specify optional comma-separated pairs ofName,Value
arguments.Name
is the argument name andValue
is the corresponding value.Name
must appear inside quotes. You can specify several name and value pair arguments in any order asName1,Value1,...,NameN,ValueN
.
'Index',5
reads the fifth image of a TIFF file.
GIF文件
'Frames'
—Frame to read
1(default) |positive integer|vector of integers|'all'
Frames to read, specified as the comma-separated pair consisting of'Frames'
and a positive integer, a vector of integers, or'all'
. For example, if you specify the value 3,imread
reads the third frame in the file. If you specify'all'
, thenimread
reads all frames and returns them in the order in which they appear in the file.
Example:'frames',5
JPEG 2000 Files
'PixelRegion'
—Subimage to read
cell array in the form{rows,cols}
Subimage to read, specified as the comma-separated pair consisting of'PixelRegion'
and a cell array of the form{rows,cols}
. Therows
input specifies the range of rows to read. Thecols
input specifies the range of columns to read. Bothrows
andcols
must be two-element vectors containing 1-based indices. For example,'PixelRegion',{[1 2],[3 4]}
reads the subimage bounded by rows 1 and 2 and columns 3 and 4 in the image data. If the'ReductionLevel'
value is greater than 0, thenrows
andcols
are coordinates of the subimage.
Example:'PixelRegion',{[1 100],[4 500]}
'ReductionLevel'
—Reduction of image resolution
0(default) |nonnegative integer
Reduction of the image resolution, specified as the comma-separated pair consisting of'ReductionLevel'
and a nonnegative integer. For reduction levelL, the image resolution is reduced by a factor of 2^L. The reduction level is limited by the total number of decomposition levels as specified by the'WaveletDecompositionLevels'
field in the output of theimfinfo
function.
Example:'ReductionLevel',5
Data Types:single
|double
'V79Compatible'
—Compatibility with MATLAB 7.9 (R2009b) and earlier
false
(default) |true
Compatibility with MATLAB 7.9 (R2009b) and earlier, specified as the comma-separated pair consisting of'V79Compatible'
and eithertrue
orfalse
. If you specifytrue
, then the returned grayscale or RGB image is consistent with previous versions ofimread
(MATLAB 7.9 (R2009b) and earlier).
Example:'V79Compatible',true
Data Types:logical
PNG Files
'BackgroundColor'
—Background color
'none'
|integer|3-element vector of integers
Background color, specified as'none'
, an integer, or a three-element vector of integers. IfBackgroundColor
is'none'
, thenimread
does not perform any compositing. Otherwise,imread
blends transparent pixels with the background color.
If the input image is indexed, then the value of
BackgroundColor
must be an integer in the range[1,P]
, whereP
is the colormap length.If the input image is grayscale, then the value of
BackgroundColor
must be an integer in the range[0,1]
.If the input image is RGB, then the value of
BackgroundColor
must be a three-element vector with values in the range[0,1]
.
The default value forBackgroundColor
depends on the presence of thetransparency
output argument and the image type:
If you request the
transparency
output argument, then the default value ofBackgroundColor
is'none'
.If you do not request the
transparency
output and the PNG file contains a background color chunk, then that color is the default value forBackgroundColor
.If you do not request the
transparency
output and the file does not contain a background color chunk, then the default value forBackgroundColor
is1
for indexed images,0
for grayscale images, and[0 0 0]
for truecolor (RGB) images.
TIFF Files
'Index'
—Image to read
1(default) |positive integer
Image to read, specified as the comma-separated pair consisting of'Index'
and a positive integer. For example, if the value ofIndex
is 3, thenimread
reads the third image in the file.
Data Types:single
|double
'Info'
—Information about image
structure array
Information about the image, specified as the comma-separated pair consisting of'Info'
and a structure array returned by theimfinfo
function. Use theInfo
name-value pair argument to helpimread
locate the images in a multi-image TIFF file more quickly.
Data Types:struct
'PixelRegion'
—Region boundary
cell array
Region boundary, specified as the comma-separated pair consisting of'PixelRegion'
and a cell array of the form{rows,cols}
. Therows
input specifies the range of rows to read. Thecols
input specifies the range of columns to read.rows
andcols
must be either two-element or three-element vectors of 1-based indices. A two-element vector specifies the first and last rows or columns to read. For example,'PixelRegion',{[1 2],[3 4]}
reads the region bounded by rows 1 and 2 and columns 3 and 4 in the image data.
A three-element vector must be in the form[start increment stop]
, wherestart
is the first row or column to read,increment
is an incremental value, andstop
is the last row or column to read. This syntax allows image downsampling. For example,'PixelRegion',{[1 2 10],[4 3 12]}
reads the region bounded by rows 1 and 10 and columns 4 and 12, and samples data from every 2 pixels in the vertical direction, and every 3 pixels in the horizontal direction.
Example:'PixelRegion',{[1 100],[4 500]}
Data Types:cell
Output Arguments
A
— Image data
array
Image data, returned as an array.
If the file contains a grayscale image, then A is an
m
-by-n
array.If the file contains an indexed image, then A is an
m
-by-n
array of index values corresponding to the color at that index inmap
.If the file contains a truecolor image, then A is an
m
-by-n
-by-3 array.If the file is a TIFF file containing color images that use the CMYK color space, then A is an
m
-by-n
-by-4 array.
The class ofA
depends on the image format and the bit depth of the image data. For more information, seeAlgorithms
map
— Colormap
m
-by-3 matrix
Colormap associated with the indexed image data inA
, returned as anm
-by-3 matrix of classdouble
.
transparency
— Transparency information
matrix
Transparency information, returned as a matrix. For PNG files,transparency
is the alpha channel, if present. If no alpha channel is present, or if you specify the'BackgroundColor'
name-value pair argument, thentransparency
is empty. For CUR and ICO files,transparency
is the AND mask. For cursor files, this mask sometimes contains the only useful data.
More About
Bit Depth
Bit depth is the number of bits used to represent each image pixel.
Bit depth is calculated by multiplying the bits-per-sample with the samples-per-pixel. Thus, a format that uses 8 bits for each color component (or sample) and three samples per pixel has a bit depth of 24. Sometimes the sample size associated with a bit depth can be ambiguous. For example, does a 48-bit bit depth represent six 8-bit samples, four 12-bit samples, or three 16-bit samples? SeeAlgorithmsfor sample size information to avoid this ambiguity.
Algorithms
For most image file formats,imread
uses 8 or fewer bits per color plane to store image pixels. This table lists the class of the returned image array,A
, for the bit depths used by the file formats.
Bit Depth in File |
Class of Array Returned by |
---|---|
1 bit per pixel |
|
2 to 8 bits per color plane |
|
9 to 16 bits per pixel |
For the 16-bit BMP packed format (5-6-5), MATLAB returns |
The following sections provide information about the support for specific formats, listed in alphabetical order by format name.
BMP — Windows Bitmap
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | No Compression | RLE Compression | Output Class | Notes |
---|---|---|---|---|
1 bit | ✓ | – | logical |
|
4 bit | ✓ | ✓ | uint8 |
|
8 bit | ✓ | ✓ | uint8 |
|
16 bit | ✓ | – | uint8 |
1 sample/pixel |
24 bit | ✓ | – | uint8 |
3 samples/pixel |
32 bit | ✓ | – | uint8 |
3 samples/pixel (1 byte padding) |
CUR — Cursor File
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | No Compression | Compression | Output Class |
---|---|---|---|
1 bit | ✓ | – | logical |
4 bit | ✓ | – | uint8 |
8 bit | ✓ | – | uint8 |
Note
By default, Microsoft®Windows®cursors are 32-by-32 pixels. Since MATLAB pointers must be 16-by-16, you might need to scale your image. If you have Image Processing Toolbox™, you can use theimresize
function.
GIF — Graphics Interchange Format
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | No Compression | Compression | Output Class |
---|---|---|---|
1 bit | ✓ | – | logical |
2 bit to 8 bit | ✓ | – | uint8 |
HDF4 — Hierarchical Data Format
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | Raster Image with colormap | Raster image without colormap | Output Class | Notes |
---|---|---|---|---|
8 bit | ✓ | ✓ | uint8 |
|
24 bit | – | ✓ | uint8 |
3 samples/pixel |
ICO — Icon File
JPEG — Joint Photographic Experts Group
imread
reads any baseline JPEG image, as well as JPEG images with some commonly used extensions. For information on JPEG 2000 file support, seeJPEG 2000.
Supported Bits per Sample | Lossy Compression | Lossless Compression | Output Class | Notes |
---|---|---|---|---|
8 bit | ✓ | ✓ | uint8 |
Grayscale or RGB |
12 bit | ✓ | ✓ | uint16 |
Grayscale or RGB |
16 bit | – | ✓ | uint16 |
Grayscale |
JPEG 2000 — Joint Photographic Experts Group 2000
For information about JPEG files, seeJPEG.
Note
索引图像JPEG 2000are not supported. Only JP2 compatible color spaces are supported for JP2/JPX files. By default, all image channels are returned in the order they are stored in the file.
Supported Bits per Sample |
Lossy Compression | Lossless Compression | Output Class | Notes |
---|---|---|---|---|
1 bit | ✓ | ✓ | logical |
Grayscale only |
2 bit to 8 bit | ✓ | ✓ | uint8 orint8 |
Grayscale or RGB |
9 bit to 16 bit | ✓ | ✓ | uint16 orint16 |
Grayscale or RGB |
PBM — Portable Bitmap
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | Raw Binary | ASCII (Plain) Encoded | Output Class |
---|---|---|---|
1 bit | ✓ | ✓ | logical |
PCX — Windows Paintbrush
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | Output Class | Notes |
---|---|---|
1 bit | logical |
Grayscale only |
8 bit | uint8 |
Grayscale or indexed |
24 bit | uint8 |
RGB 三个8位/像素样本 |
PGM — Portable Graymap
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | Raw Binary | ASCII (Plain) Encoded | Output Class | Notes |
---|---|---|---|---|
8 bit | ✓ | – | uint8 |
|
16 bit | ✓ | – | uint16 |
|
Arbitrary | – | ✓ | 1-bit to 8-bit:uint8 9-bit to 16-bit: uint16 |
Values are scaled |
PNG — Portable Network Graphics
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | Output Class | Notes |
---|---|---|
1 bit | logical |
Grayscale |
2 bit | uint8 |
Grayscale |
4 bit | uint8 |
Grayscale |
8 bit | uint8 |
Grayscale or Indexed |
16 bit | uint16 |
Grayscale or Indexed |
24 bit | uint8 |
RGB 三个8位/像素样本. |
48 bit | uint16 |
RGB Three 16-bit samples/pixel. |
PPM — Portable Pixmap
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | Raw Binary | ASCII (Plain) Encoded | Output Class |
---|---|---|---|
Up to 16 bit | ✓ | – | uint8 |
Arbitrary | – | ✓ |
RAS — Sun Raster
This table lists supported bit depths and the data type of the output image data array.
Supported Bit Depths | Output Class | Notes |
---|---|---|
1 bit | logical |
Bitmap |
8 bit | uint8 |
Indexed |
24 bit | uint8 |
RGB 三个8位/像素样本 |
32 bit | uint8 |
RGB with Alpha Four 8-bit samples/pixel |
TIFF — Tagged Image File Format
imread
读最支持的TIFF图像金宝appspecification or LibTIFF. Theimread
function supports these TIFF capabilities:
Any number of samples per pixel
CCITT group 3 and 4 FAX, Packbits, JPEG, LZW, Deflate, ThunderScan compression, and uncompressed images
Logical, grayscale, indexed color, truecolor and hyperspectral images
RGB, CMYK, CIELAB, ICCLAB color spaces. If the color image uses the CMYK color space,
A
is anm
-by-n
-by-4 array. To determine which color space is used, useimfinfo
to get information about the graphics file and look at the value of thePhotometricInterpretation
field. If a file contains CIELAB color data,imread
converts it to ICCLAB before bringing it into the MATLAB workspace. This conversion is necessary because 8-bit or 16-bit TIFF CIELAB-encoded values use a mixture of signed and unsigned data types that cannot be represented as a single MATLAB array.Data organized into tiles or scanlines
imread
reads and converts TIFF images as follows:
YCbCr images are converted into the RGB colorspace.
All grayscale images are read as if black =
0
, white = largest value.1-bit images are returned as class
logical
.16-bit floating-point images are returned as class
single
.CIELab images are converted into ICCLab colorspace.
For copyright information, open thelibtiffcopyright.txt
file.
XWD — X Window Dump
This table lists the supported bit depths, compression, and output classes for XWD files.
Supported Bit Depths | ZPixmaps | XYBitmaps | XYPixmaps | Output Class |
---|---|---|---|---|
1 bit | ✓ | – | ✓ | logical |
8 bit | ✓ | – | – | uint8 |
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Supports reading of 8-bit JPEG images only. The input argument
filename
must be a valid absolute path or relative path.这个函数使用precompil生成代码ed,platform-specific shared library(Image Processing Toolbox).
In aMATLAB Functionblock, the input argument
filename
must be a compile-time constant.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Usage notes and limitations:
Supports reading of 8-bit JPEG images only. The input argument
filename
must be a valid absolute path or relative path.这个函数使用precompil生成代码ed,platform-specific shared library(Image Processing Toolbox).
In aMATLAB Functionblock, the input argument
filename
must be a compile-time constant.
Introduced before R2006a
Open Example
A modified version of this example exists on your system. Do you want to open this version instead?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)