refinery
RAW file processor
Public Member Functions

refinery::CameraData Class Reference

A Camera coupled with one photo's ExifData. More...

#include <refinery/camera.h>

Collaboration diagram for refinery::CameraData:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CameraData (const Camera &camera, const ExifData &exifData)
 Creates a CameraData for a given photo.
 CameraData (const CameraData &rhs)
 Copy constructor.
const Cameracamera () const
 The Camera object.
const ExifDataexifData () const
 The ExifData object particular to this photo.
unsigned int orientation () const
 The Exif "Orientation", from 1 to 8, saying how one image is flipped.
virtual unsigned int filters () const
 A bitmask representing the camera sensor array.
unsigned int colors () const
 The number of sensor colors, typically 3 or 4.
unsigned int rawWidth () const
 The width of the raw image, in pixels.
unsigned int rawHeight () const
 The height of the raw image, in pixels.
Camera::ColorConversionData colorConversionData () const
 Some multipliers for changing color spaces.

Detailed Description

A Camera coupled with one photo's ExifData.

This is the public face that callers care about. Callers shouldn't need to know whether a default color profile comes hard-coded or embedded in Exif. This class abstracts everything.

CameraData instances are lightweight. Shallow-copy them at will.

Definition at line 158 of file camera.h.


Constructor & Destructor Documentation

refinery::CameraData::CameraData ( const Camera camera,
const ExifData exifData 
) [inline]

Creates a CameraData for a given photo.

The Camera and ExifData are both passed by reference and must exist for the lifetime of this CameraData.

Parameters:
[in]cameraThe static camera data.
[in]exifDataThe photograph's Exif data.

Definition at line 172 of file camera.h.

refinery::CameraData::CameraData ( const CameraData rhs) [inline]

Copy constructor.

The Camera and ExifData are both passed by reference.

Parameters:
[in]rhsOriginal CameraData.

Definition at line 182 of file camera.h.


Member Function Documentation

virtual unsigned int refinery::CameraData::filters ( ) const [virtual]

A bitmask representing the camera sensor array.

Here are some possible return values and what they represent:

 PowerShot 600      PowerShot A50      PowerShot Pro70    Pro90 & G1
 0xe1e4e1e4:        0x1b4e4b1e:        0x1e4b4e1b:        0xb4b4b4b4:
   0 1 2 3 4 5        0 1 2 3 4 5        0 1 2 3 4 5        0 1 2 3 4 5
 0 G M G M G M      0 C Y C Y C Y      0 Y C Y C Y C      0 G M G M G M
 1 C Y C Y C Y      1 M G M G M G      1 M G M G M G      1 Y C Y C Y C
 2 M G M G M G      2 Y C Y C Y C      2 C Y C Y C Y
 3 C Y C Y C Y      3 G M G M G M      3 G M G M G M
                    4 C Y C Y C Y      4 Y C Y C Y C
 PowerShot A5       5 G M G M G M      5 G M G M G M
 0x1e4e1e4e:        6 Y C Y C Y C      6 C Y C Y C Y
                    7 M G M G M G      7 M G M G M G
   0 1 2 3 4 5
 0 C Y C Y C Y
 1 G M G M G M
 2 C Y C Y C Y
 3 M G M G M G
 All RGB cameras use one of these Bayer grids:
 0x16161616:        0x61616161:        0x49494949:        0x94949494:
   0 1 2 3 4 5        0 1 2 3 4 5        0 1 2 3 4 5        0 1 2 3 4 5
 0 B G B G B G      0 G R G R G R      0 G B G B G B      0 R G R G R G
 1 G R G R G R      1 B G B G B G      1 R G R G R G      1 G B G B G B
 2 B G B G B G      2 G R G R G R      2 G B G B G B      2 R G R G R G
 3 G R G R G R      3 B G B G B G      3 R G R G R G      3 G B G B G B
Returns:
The camera's sensor color pattern.
unsigned int refinery::CameraData::rawHeight ( ) const

The height of the raw image, in pixels.

This is different from height(), which is the height of the output image. Some cameras capture margin pixels which have no value at all, and this height includes those.

Returns:
How many pixels are in each sensor column.
unsigned int refinery::CameraData::rawWidth ( ) const

The width of the raw image, in pixels.

This is different from width(), which is the width of the output image. Some cameras capture margin pixels which have no value at all, and this width includes those.

Returns:
How many pixels are in each sensor row.

The documentation for this class was generated from the following file:
 All Classes Functions Variables Typedefs Enumerations Enumerator