Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

RGB_PcaOp Class Reference

#include <RGB_PcaOp.hpp>

List of all members.


Detailed Description

PCA on Covariance matrix of Rgb Pixels.

Author:
Bernard De Cuyper
Version:
1.10
Date:
10/12/2003
 
Purpose:        PCA on covariance matrix of color RGB pixels allows to compute a fast separation
                of PCA components.

                Computation of the covariance is reduced, because we are not dealing with large number of channels.
                Also, we have the advantage, that the ordered PCAs can be evaluated quickly.
                The strongest PCA holds the most information. 

Papers: "Principal Component Neural Networks: Theory and Applications", K.I.Diamantaras, S.Y.Kung,
                Wiley-Interscience Publication, 1996.

                "Decision Estimation and Classification: An Introduction to Pattern Recognition and Related Topics.",
                Charles W. Therrien, John Wiley & Sons 1989.

Additional source:
                A very good public routine to tri-diagonalize a real symmetric matrix uses Householder's method.
                Thanks to Jeffrey D. Taft: "The C Eigenvector Source Code Page".

                
@ Copyrights: Bernard De Cuyper & Eddy Fraiha 2003, Eggs & Pictures. MIT/Open BSD copyright model.


Public Methods

 RGB_PcaOp ()
virtual ~RGB_PcaOp ()
virtual RImagesingleFilter (AnImage *source, RImage *destination, int pcaChannel=0)
virtual Real3CImagefilter (AnImage *source, Real3CImage *destination)
virtual void report (FILE *file)
virtual void report ()

Protected Methods

void computePixelCovariance (AnImage *g)
void triDiagonalisation ()
void tri_diag (double *a, double *d, double *e, double *z, int n, double tol)
int calc_eigenstructure (double *d, double *e, double *z, int n, double macheps)

Private Attributes

int width
int height
double * meanChannel
double * covariance
double * eigenValue
double * triDiagonalCov
double * eigenVectors
double * e


The documentation for this class was generated from the following files:
SourceForge.net Logo
Restoreinpaint sourceforge project `C++/Java Image Processing, Restoration, Inpainting Project'.

Bernard De Cuyper: Open Project Leader: Concept, design and development.
Bernard De Cuyper & Eddy Fraiha 2002, 2003. Bernard De Cuyper 2004. Open and free, for friendly usage only.
Modifications on Belgium ground of this piece of artistic work, by governement institutions or companies, must be notified to Bernard De Cuyper.
bern_bdc@hotmail.com