libgphoto2 photo camera library (libgphoto2) API
2.5.10.1
|
Bayer array conversion routines. More...
Macros | |
#define | RED 0 |
#define | GREEN 1 |
#define | BLUE 2 |
#define | AD(x, y, w) ((y)*(w)*3+3*(x)) |
Functions | |
int | gp_bayer_expand (unsigned char *input, int w, int h, unsigned char *output, BayerTile tile) |
Expand a bayer raster style image to a RGB raster. More... | |
int | gp_bayer_interpolate (unsigned char *image, int w, int h, BayerTile tile) |
Interpolate a expanded bayer array into an RGB image. More... | |
int | gp_bayer_decode (unsigned char *input, int w, int h, unsigned char *output, BayerTile tile) |
Convert a bayer raster style image to a RGB raster. More... | |
Bayer array conversion routines.
int gp_bayer_decode | ( | unsigned char * | input, |
int | w, | ||
int | h, | ||
unsigned char * | output, | ||
BayerTile | tile | ||
) |
Convert a bayer raster style image to a RGB raster.
input | the bayer CCD array as linear input |
w | width of the above array |
h | height of the above array |
output | RGB output array (linear, 3 bytes of R,G,B for every pixel) |
tile | how the 2x2 bayer array is layed out |
A regular CCD uses a raster of 2 green, 1 blue and 1 red components to cover a 2x2 pixel area. The camera or the driver then interpolates a 2x2 RGB pixel set out of this data.
This function expands and interpolates the bayer array to 3 times larger bitmap with RGB values interpolated.
References gp_bayer_expand(), gp_bayer_interpolate(), and GP_OK.
int gp_bayer_expand | ( | unsigned char * | input, |
int | w, | ||
int | h, | ||
unsigned char * | output, | ||
BayerTile | tile | ||
) |
Expand a bayer raster style image to a RGB raster.
input | the bayer CCD array as linear input |
w | width of the above array |
h | height of the above array |
output | RGB output array (linear, 3 bytes of R,G,B for every pixel) |
tile | how the 2x2 bayer array is layed out |
A regular CCD uses a raster of 2 green, 1 blue and 1 red components to cover a 2x2 pixel area. The camera or the driver then interpolates a 2x2 RGB pixel set out of this data.
This function expands the bayer array to 3 times larger bitmap with RGB values copied as-is. Pixels were no sensor was there are 0. The data is supposed to be processed further by for instance gp_bayer_interpolate().
References BAYER_TILE_BGGR, BAYER_TILE_BGGR_INTERLACED, BAYER_TILE_GBRG, BAYER_TILE_GBRG_INTERLACED, BAYER_TILE_GRBG, BAYER_TILE_GRBG_INTERLACED, BAYER_TILE_RGGB, BAYER_TILE_RGGB_INTERLACED, and GP_OK.
Referenced by gp_ahd_decode(), and gp_bayer_decode().
int gp_bayer_interpolate | ( | unsigned char * | image, |
int | w, | ||
int | h, | ||
BayerTile | tile | ||
) |
Interpolate a expanded bayer array into an RGB image.
image | the linear RGB array as both input and output |
w | width of the above array |
h | height of the above array |
tile | how the 2x2 bayer array is layed out |
This function interpolates a bayer array which has been pre-expanded by gp_bayer_expand() to an RGB image. It uses various interpolation methods, also see gp_bayer_accrue().
References BAYER_TILE_BGGR, BAYER_TILE_BGGR_INTERLACED, BAYER_TILE_GBRG, BAYER_TILE_GBRG_INTERLACED, BAYER_TILE_GRBG, BAYER_TILE_GRBG_INTERLACED, BAYER_TILE_RGGB, BAYER_TILE_RGGB_INTERLACED, and GP_OK.
Referenced by gp_bayer_decode().