Table of Contents

## Name

im_extract, im_extract_band, im_extract_bands, im_etract_area - extract a portion of an image

## Synopsis

#include <vips/vips.h>

int im_extract(in, out, pbox)
IMAGE *in, *out;
IMAGE_BOX *pbox;

int im_extract_band(in, out, band)
IMAGE *in, *out;
int band;

int im_extract_bands(in, out, band, nbands)
IMAGE *in, *out;
int band;
int nbands;

int im_extract_area(in, out, x, y, w, h)
IMAGE *in, *out;
int x, y, w, h;

## Description

im_extract(3) extracts a portion of the image pointed by in and writes the result to out. pbox specifies the size and position of the area to be extracted and is defined as

/* Used to define a region of interest for
* im_extract() etc.
*/
typedef struct {
int xstart;
int ystart;
int xsize;
int ysize;
int chsel;
} IMAGE_BOX;

see <vips/vips.h>. if pbox->chsel is set to -1, all bands are extracted; otherwise pbox->chsel gives the band to extract, numbering from zero. The area specified by pbox must lie entirely within the image.

Works for any size image, any number of bands, any type. Works for LABPACK coded images too! But disallows band extraction in this case.

If used as part of a pipeline of partial image operations, im_extract() magically vanishes if chsel is -1. See the VIPS IO System Guide.

im_extract_area(3) is a convenience function which extracts an area from an image, leaving the bands the same.

im_extract_bands(3) takes nbands out of an image, starting from band band. So, for example, nbands == 2, bands == 1 will form a two band image from an RGB image, where the two bands are the G and the B bands.

im_extract_band(3) is a convenience function which extracts a single band from an image.

## Return Value

The function returns 0 on success and -1 on error.

## See Also

im_insert(3) , im_lrjoin(3) , im_lrmerge(3) , im_stats(3) , im_region_region(3) .

## Copyright

J. Cupitt,

## Author

J. Cupitt - 11/04/1990

Table of Contents

- Name
- Synopsis
- Description
- Return Value
- See Also
- Copyright
- Author