bayer.h File Reference

This graph shows which files directly or indirectly include this file:

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.
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.
int gp_bayer_interpolate (unsigned char *image, int w, int h, BayerTile tile)
 Interpolate a expanded bayer array into an RGB image.


Detailed Description

Author:
Copyright 2001 Lutz Müller <lutz@users.sf.net>
Note:
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


Enumeration Type Documentation

enum BayerTile

how the bayer CCD array is layed out

This enumeration defines how the CCD bayer array is laid out.

Enumerator:
BAYER_TILE_RGGB  raster is RG,GN
BAYER_TILE_GRBG  raster is GR,BG
BAYER_TILE_BGGR  raster is BG,GR
BAYER_TILE_GBRG  raster is RG,GB
BAYER_TILE_RGGB_INTERLACED  scanline order: R1,G1,R2,G2,...,G1,B1,G2,B2,...
BAYER_TILE_GRBG_INTERLACED  scanline order: G1,R1,R2,G2,...,B1,G1,B2,G2,...
BAYER_TILE_BGGR_INTERLACED  scanline order: B1,G1,R2,G2,...,G1,R1,G2,R2,...
BAYER_TILE_GBRG_INTERLACED  scanline order: G1,B1,G2,B2,...,R1,G1,R2,G2,...


Function Documentation

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.

Parameters:
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.

Returns:
a gphoto error code

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.

Parameters:
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().

Returns:
a gphoto error code

int gp_bayer_interpolate ( unsigned char *  image,
int  w,
int  h,
BayerTile  tile 
)

Interpolate a expanded bayer array into an RGB image.

Parameters:
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().

Returns:
a gphoto error code


Generated on Sun Jul 22 19:29:35 2007 for libgphoto2 photo camera library (libgphoto2) by  doxygen 1.5.0