Calculates matrix for conversion from camera color space to linear sRGB colorspace, based on two known color matrices corresponding to different light conditions, and a white point.
Declaration:
Copy Code | |
---|---|
AT_ERRCOUNT ACCUAPI IG_IP_DCRaw_camera_to_sRGB_matrix_calculate( AT_INT SrcChannelCount, HIGDoubleMatrix XYZToCam1, enumIGIlluminant Illuminant1, HIGDoubleMatrix XYZToCam2, enumIGIlluminant Illuminant2, AT_DPOINT WhiteXY, HIGDoubleMatrix *lpCamToRGB ); |
Arguments:
SrcChannelCount | Number of channels in the camera color space. |
XYZToCam1 | XYZ to camera matrix under Illuminant 1. |
Illuminant1 | Illuminant 1. See enumIGIlluminant. |
XYZToCam | XYZ to camera matrix under Illuminant 2. |
Illuminant2 | Illuminant 2. See enumIGIlluminant. |
WhiteXY | XY coordinates of camera white point. |
lpCamToRGB | Returns conversion matrix. |
Return Value:
Returns the number of ImageGear errors that occurred during this function call.
Supported Raster Image Formats:
This function does not process image pixels.
Remarks:
By "linear sRGB colorspace" we assume a linear (Gamma = 1.0) RGBcolor space that uses sRGB primaries and reference white. Thiscolor space can be converted to sRGB by applying sRGB gamma correction function.
If only one color matrix is known, pass null to XYZToCam2.
Dimensions of XYZToCam1 and XYZToCam2 must be equal to (n, 3), where n is channel count of native cameracolor space (3 or 4). Result matrix dimensions are (3, n).
SrcChannelCount is the image channel count before conversion. The rest of the info comes from metadata, or from the end user.
Parameter | Name | DCRaw Metadata Tag | DNG Metadata Tag |
HIGDoubleMatrix XYZToCam1 | ColorMatrix1 | IGMDTAG_ID_DCRAW_COLORMATRIX1 | IGMDTAG_ID_TIF_COLOR_MATRIX1 |
enumIGIlluminant Illuminant1 | CalibrationIlluminant1 | IGMDTAG_ID_DCRAW_CALIBRATIONILLUMINANT1 | IGMDTAG_ID_TIF_CALIBRATION_ILLUMINANT1 |
HIGDoubleMatrix XYZToCam2 | ColorMatrix2 | IGMDTAG_ID_DCRAW_COLORMATRIX2 | IGMDTAG_ID_TIF_COLOR_MATRIX2 |
enumIGIlluminant Illuminant2 | CalibrationIlluminant2 | IGMDTAG_ID_DCRAW_CALIBRATIONILLUMINANT2 | IGMDTAG_ID_TIF_CALIBRATION_ILLUMINANT2 |
AT_DPOINT WhiteXY | AsShotWhiteXY AsShotNeutral | N/A IGMDTAG_ID_DCRAW_ASSHOTNEUTRAL | IGMDTAG_ID_TIF_AS_SHOT_WHITEXY IGMDTAG_ID_TIF_AS_SHOT_NEUTRAL |
The WhiteXY parameter can be calculated from AsShotNeutral by using IG_IP_DCRaw_white_point_calculate. Its parameters are the same as those of IG_IP_DCRaw_camera_to_sRGB_matrix_calculate, except that it takes a lpNeutralColor parameter (AsShotNeutral) and returns WhiteXY.
It can also be calculated from a user-specified color temperature by using IG_color_temperature_convert_to_XY. There are well known color temperature presets for different shooting conditions, such as Daylight, Cloudy, Tungsten, etc.
See also IG_IP_DCRaw_RGB_gamma_LUT_build. |