LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::splitImageToYIQ Class Reference
[Color Analysis]

Split image in its Luminance Inphase Quadrature channels. More...

#include <ltiSplitImageToYIQ.h>

Inheritance diagram for lti::splitImageToYIQ:
Inheritance graph
[legend]
Collaboration diagram for lti::splitImageToYIQ:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual const char * getTypename () const
virtual functorclone () const
virtual bool apply (const image &img, channel &Y, channel &I, channel &Q) const
virtual bool apply (const image &img, channel8 &Y, channel8 &I, channel8 &Q) const
virtual bool apply (const rgbPixel &pixel, float &Y, float &I, float &Q) const
virtual bool apply (const rgbPixel &pixel, ubyte &Y, ubyte &I, ubyte &Q) const

Detailed Description

Split image in its Luminance Inphase Quadrature channels.

The following is an excerpt of this page

The YIQ system is the color primary system adopted by National Television System Committee (NTSC) for color TV broadcasting. The YIQ color solid is made by a linear transformation of the RGB cube. Its purpose is to exploit certain characteristics of the human eye to maximize the utilization of a fixed bandwidth. The human visual system is more sensitive to changes in luminance than to changes in hue or saturation, and thus a wider bandwidth should be dedicated to luminance than to color information. Y is similar to perceived luminance, I and Q carry color information and some luminance information. The Y signal usually has 4.2 MHz bandwidth in a 525 line system. Originally, the I and Q had different bandwidths (1.5 and 0.6 MHz), but now they commonly have the same bandwidth of 1 MHz.

Here is the RGB -> YIQ conversion:

 [ Y ]     [ 0.299   0.587   0.114 ] [ R ]
 [ I ]  =  [ 0.596  -0.275  -0.321 ] [ G ]
 [ Q ]     [ 0.212  -0.523   0.311 ] [ B ]

Here is the YIQ -> RGB conversion:

 [ R ]     [ 1   0.956   0.621 ] [ Y ]
 [ G ]  =  [ 1  -0.272  -0.647 ] [ I ]
 [ B ]     [ 1  -1.105   1.702 ] [ Q ]

This color space is not used anymore. Modern systems use the YUV, YCbCr or YPbPr spaces instead.

See also:
lti::splitImageToYUV, lti::splitImageToYCbCr, lti::splitImageToYPbPr

Member Function Documentation

virtual bool lti::splitImageToYIQ::apply ( const rgbPixel pixel,
ubyte Y,
ubyte I,
ubyte Q 
) const [virtual]

split the pixel in YIQ.

YIQ splitting produces unnormalized values !

Parameters:
pixel the pixel to be splitted
Y the perceived luminance
I color information and some luminance
Q color information and some luminance

Implements lti::splitImage.

virtual bool lti::splitImageToYIQ::apply ( const rgbPixel pixel,
float &  Y,
float &  I,
float &  Q 
) const [virtual]

split the pixel in YIQ.

YIQ splitting produces unnormalized values !

Parameters:
pixel the pixel to be splitted
Y the perceived luminance
I color information and some luminance
Q color information and some luminance

Implements lti::splitImage.

virtual bool lti::splitImageToYIQ::apply ( const image img,
channel8 Y,
channel8 I,
channel8 Q 
) const [virtual]

split the image in YIQ.

YIQ splitting produces unnormalized channels !

Parameters:
img the image to be splitted
Y the perceived luminance
I color information and some luminance
Q color information and some luminance

Implements lti::splitImage.

virtual bool lti::splitImageToYIQ::apply ( const image img,
channel Y,
channel I,
channel Q 
) const [virtual]

split the image in YIQ.

YIQ splitting produces unnormalized channels !

Parameters:
img the image to be splitted
Y the perceived luminance
I color information and some luminance
Q color information and some luminance

Implements lti::splitImage.

virtual functor* lti::splitImageToYIQ::clone (  )  const [virtual]

returns a pointer to a clone of the functor

Implements lti::functor.

virtual const char* lti::splitImageToYIQ::getTypename (  )  const [virtual]

returns the name of this type


The documentation for this class was generated from the following file:

Generated on Sat Apr 10 15:27:54 2010 for LTI-Lib by Doxygen 1.6.1