Table of Contents

NAME

QccIMGImageRGBtoYUV, QccIMGImageYUVtoRGB, QccIMGImageRGBtoYCbCr, QccIMGImageYCbCrtoRGB, QccIMGImageRGBtoXYZ, QccIMGImageXYZtoRGB, QccIMGImageRGBtoUCS, QccIMGImageUCStoRGB, QccIMGImageRGBtoModifiedUCS, QccIMGImageModifiedUCStoRGB, QccIMGImageModifiedUCSColorMetric, QccIMGImageRGBtoHSV, QccIMGImageHSVtoRGB - image color-space conversions

SYNOPSIS

#include "libQccPack.h"

void QccIMGImageRGBtoYUV(double *Y, double *U, double *V, int R, int G, int B);
void QccIMGImageYUVtoRGB(int *R, int *G, int *B, double Y, double U, double V);

void QccIMGImageRGBtoYCbCr(int *Y, int *Cb, int *Cr, int R, int G, int B);
void QccIMGImageYCbCrtoRGB(int *R, int *G, int *B, int Y, int Cb, int Cr);

void QccIMGImageRGBtoXYZ(double *X, double *Y, double *Z, int R, int G, int B);
void QccIMGImageXYZtoRGB(int *R, int *G, int *B, double X, double Y ,double Z );

void QccIMGImageRGBtoUCS(double *U, double *V, double *W, int R, int G, int B);
void QccIMGImageUCStoRGB(int *R, int *G, int *B, double U, double V, double W);

void QccIMGImageRGBtoModifiedUCS(double *U, double *V, double *W, int R, int G, int B);
void QccIMGImageModifiedUCStoRGB(int *R, int *G, int *B, double U, double V, double W);
double QccIMGImageModifiedUCSColorMetric(int R1, int G1, int B1, int R2, int G2, int B2);

void QccIMGImageRGBtoHSV(double *H, double *S, double *V, int R, int G, int B);
void QccIMGImageHSVtoRGB(int *R, int *G, int *B, double H, double S, double V);

DESCRIPTION

The following routines perform conversions to and from various color spaces. All of the following conversions are for tristimulus values (not chromaticities). Also, RGB values are assumed to be integers in the range 0 to 255.

QccIMGImageRGBtoYUV() and QccIMGImageYUVtoRGB() convert to and from the PAL YUV color space. R, G, and B are assumed to be integer values in the range 0 to 255. Y, U, and V, are floating point with Y in the range 0 to 255, U in the range approximately -111 to 111, and V in the range approximately -157 to 157.

QccIMGImageRGBtoYCbCr() and QccIMGImageYCbCrtoRGB() convert to and from the CCIR-601 YCbCr color space. R, G, and B are assumed to be integer values in the range 0 to 255. Y, Cb, and Cr are also integer-valued; Y lies in the range 16 to 235, while Cb and Cr are both in the range 16 to 240. The CCIR-601 YCbCr color space is very close to the PAL YUV color space; the main difference is that the YCbCr values are designed to be represented by positive, 8-bit integers with a margin for "overshoot" and "undershoot".

QccIMGImageRGBtoXYZ() and QccIMGImageXYZtoRGB() convert to and from the CIE X, Y, Z color space. R, G, and B are assumed to be integer values in the range 0 to 255. X, Y, and Z are floating point in the range 0.0 to 1.0. Y in this color system is luminance.

QccIMGImageRGBtoUCS() and QccIMGImageUCStoRGB() convert to and from the CIE Uniform Chromaticity Scale (UCS) color space. In this color system, V is luminance.

QccIMGImageRGBtoModifiedUCS() and QccIMGImageModifiedUCStoRGB() convert to and from the CIE Modified UCS System. In this system, W is contrast or brightness. QccIMGImageModifiedUCSColorMetric() returns the squared distance between two RGB colors as calculated in the CIE Modified UCS space. The two RGB colors are converted into the CIE Modified UCS space, and the square of the Euclidean distance between the converted colors is calculated.

QccIMGImageRGBtoHSV() and QccIMGImageHSVtoRGB() convert to and from Hue, Saturation, Value (HSV) space. This space is merely the polar form of Modified UCS; V is value, or more accurately, brightness.

SEE ALSO

QccIMGImageColorSNR(3) , QccIMGImage(3) , QccPackIMG(3) , QccPack(3)

A. K. Jain, Fundamentals of Digital Image Processing. Englewood Cliffs, NJ: Prentice Hall, 1989.

M. Ghanbari, Standard Codecs: Image Compression to Advanced Video Coding. London: IEE, 2003.

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



Get QccPack at SourceForge.net. Fast, secure and Free Open Source software downloads