libgphoto2 photo camera library (libgphoto2) API
2.5.22
|
Go to the source code of this file.
Enumerations | |
enum | BayerTile { BAYER_TILE_RGGB = 0, BAYER_TILE_GRBG = 1, BAYER_TILE_BGGR = 2, BAYER_TILE_GBRG = 3, BAYER_TILE_RGGB_INTERLACED = 4, BAYER_TILE_GRBG_INTERLACED = 5, BAYER_TILE_BGGR_INTERLACED = 6, BAYER_TILE_GBRG_INTERLACED = 7 } |
how the bayer CCD array is layed out More... | |
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_decode (unsigned char *input, int w, int h, unsigned char *output, BayerTile tile) |
Convert 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_ahd_decode (unsigned char *input, int w, int h, unsigned char *output, BayerTile tile) |
Convert a bayer raster style image to a RGB raster. More... | |
int | gp_ahd_interpolate (unsigned char *image, int w, int h, BayerTile tile) |
Interpolate a expanded bayer array into an RGB image. More... | |
enum BayerTile |
how the bayer CCD array is layed out
This enumeration defines how the CCD bayer array is laid out.
int gp_ahd_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. It does the same job as
gp_bayer_decode() but it calls gp_ahd_interpolate() instead of calling gp_bayer_interpolate(). Use this instead of gp_bayer_decode() if you want to use or to test AHD interpolation in a camera library.
References gp_ahd_interpolate(), gp_bayer_expand(), and GP_OK.
int gp_ahd_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 applies the method of adaptive homogeneity-directed demosaicing.
for the vertical interpolation and the other for the horizontal interpolation instead of using two copies of the entire input image. The nterpolation and the choice algorithm are then implemented entirely within these windows, too. When this has been done, a completed row is written back to the image. Then the windows are moved, and the process repeats.
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_ERROR_NO_MEMORY.
Referenced by gp_ahd_decode().
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_GBRG, BAYER_TILE_GRBG, and BAYER_TILE_RGGB.
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, and BAYER_TILE_RGGB_INTERLACED.
Referenced by gp_bayer_decode().