Next: , Up: Image Processing


32.1 Loading and Saving Images

The first step in most image processing tasks is to load an image into Octave. This is done using the imread function, which uses the GraphicsMagick library for reading. This means a vast number of image formats is supported. The imwrite function is the corresponding function for writing images to the disk.

In summary, most image processing code will follow the structure of this code

     I = imread ("my_input_image.img");
     J = process_my_image (I);
     imwrite ("my_output_image.img", J);

— Function File: [img, map, alpha] = imread (filename)

Read images from various file formats.

The size and numeric class of the output depends on the format of the image. A color image is returned as an MxNx3 matrix. Gray-level and black-and-white images are of size MxN. The color depth of the image determines the numeric class of the output: "uint8" or "uint16" for gray and color, and "logical" for black and white.

See also: imwrite, imfinfo.

— Function File: imwrite (img, filename)
— Function File: imwrite (img, filename, fmt)
— Function File: imwrite (img, filename, fmt, p1, v1, ...)
— Function File: imwrite (img, map, filename, ...)

Write images in various file formats.

If fmt is not supplied, the file extension of filename is used to determine the format.

The parameter-value pairs (p1, v1, ...) are optional. Currently the following options are supported for JPEG images:

Quality
Set the quality of the compression. The value should be an integer between 0 and 100, with larger values indicating higher visual quality and lower compression.

Supported Formats

Extension Format
bmp Windows Bitmap
gif Graphics Interchange Format
jpg and jpeg Joint Photographic Experts Group
pbm Portable Bitmap
pcx
pgm Portable Graymap
png Portable Network Graphics
pnm Portable Anymap
ppm Portable Pixmap
ras Sun Raster
tif and tiff Tagged Image File Format
xwd X11 Dump

Unsupported Formats

Extension Format
hdf Hierarchical Data Format V4
jp2 and jpx Joint Photographic Experts Group 2000

See also: imread, imfinfo.

— Built-in Function: val = IMAGE_PATH ()
— Built-in Function: old_val = IMAGE_PATH (new_val)
— Built-in Function: IMAGE_PATH (new_val, "local")

Query or set the internal variable that specifies a colon separated list of directories in which to search for image files.

When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function.

It is possible to get information about an image file on disk, without actually reading it into Octave. This is done using the imfinfo function which provides read access to many of the parameters stored in the header of the image file.

— Function File: info = imfinfo (filename)
— Function File: info = imfinfo (url)

Read image information from a file.

imfinfo returns a structure containing information about the image stored in the file filename. The output structure contains the following fields.

Filename
The full name of the image file.
FileSize
Number of bytes of the image on disk
FileModDate
Date of last modification to the file.
Height
Image height in pixels.
Width
Image Width in pixels.
BitDepth
Number of bits per channel per pixel.
Format
Image format (e.g., "jpeg").
LongFormat
Long form image format description.
XResolution
X resolution of the image.
YResolution
Y resolution of the image.
TotalColors
Number of unique colors in the image.
TileName
Tile name.
AnimationDelay
Time in 1/100ths of a second (0 to 65535) which must expire before displaying the next image in an animated sequence.
AnimationIterations
Number of iterations to loop an animation (e.g., Netscape loop extension) for.
ByteOrder
Endian option for formats that support it. Is either "little-endian", "big-endian", or "undefined".
Gamma
Gamma level of the image. The same color image displayed on two different workstations may look different due to differences in the display monitor.
Matte
true if the image has transparency.
ModulusDepth
Image modulus depth (minimum number of bits required to support red/green/blue components without loss of accuracy).
Quality
JPEG/MIFF/PNG compression level.
QuantizeColors
Preferred number of colors in the image.
ResolutionUnits
Units of image resolution. Is either "pixels per inch", "pixels per centimeter", or "undefined".
ColorType
Image type. Is either "grayscale", "indexed", "truecolor", or "undefined".
View
FlashPix viewing parameters.

See also: imread, imwrite.