include/OkanReg.h

00001 #ifndef _OKAN_REG_H_
00002 #define _OKAN_REG_H
00003 
00004 #include "OkanMisc.h"
00005 #include "highgui.h"
00006 
00007 #include <iostream>
00008 #include <string>
00009 #include <vector>
00010 
00016 class OkanReg
00017 {
00018         public:
00022         IplImage* image[2];
00023         
00027         IplImage* gray[2];
00028         
00032         CvPoint2D32f *corner[2];
00033         
00037         int cornerSize[2];
00038         
00042         vector< CvPoint2D32f > matches[2];
00043         
00048         CvMat* bestMat[2];
00049 
00054         int bestPoint;
00055         
00059         float bestMse;
00060 
00074         double norCrosCorr( int x0 , int y0 , int x1 , int y1 , int n , double mean0 , double std0 , double mean1 , double std1 );
00075 
00081         void findHomography( int * ids , CvMat* h );
00082 
00090         int checkHomographyQuality( CvMat* h , float errTol , float & mse );
00091         
00092 
00093         public:
00097         OkanReg();
00098         
00104         ~OkanReg();
00105 
00111         void clearReg();
00112         
00119         void destroyImage( int id );
00120 
00128         void setImage( IplImage* im , int id );
00129         
00133         void setImage( string im , int id );
00134         
00140         IplImage* getImage( int id );
00141 
00150         void setImageROI( int id , int x1 , int y1 , int x2 , int y2 );
00151 
00157         CvRect getImageROI( int id );
00158 
00163         void removeImageROI( int id );
00164 
00170         int getCornerSize( int id );
00171 
00177         CvPoint2D32f* getCorner( int id );
00178         
00182         void clearMatches();
00183 
00189         void addMatch( CvPoint2D32f p1 , CvPoint2D32f p2 );
00190         
00195         void eraseMatch( int id );
00196 
00202         vector< CvPoint2D32f > & getMatches( int id );
00203 
00209         CvMat* getBestMat( int id );
00210 
00215         int getBestPoint();
00216 
00221         float getBestMse();
00222         
00234         double findHarris( int id  , int n , double thresh , double minDistance , int blockSize = 3 , int apertureSize = 3 , double k = 0.04 );
00235 
00243         int findPutMatch( int n , int d = 0 , double thresh = -2 );
00244 
00253         bool findRANSACHomography( int iter , float errTol );
00254 };
00255 
00256 #endif

Generated on Sun Jun 15 22:35:25 2008 by  doxygen 1.5.3