Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
RectificationParams.hpp
00001 /* $Id$ */
00002 
00003 #ifndef RECTIFICATION_PARAMS_HPP
00004 #define RECTIFICATION_PARAMS_HPP
00005 
00006 #include "stereo/CalibrageMatrices.hpp"
00007 #include "stereo/ImagesSizes.hpp"
00008 
00009 namespace jafar {
00011   namespace stereo {
00012     
00018     class RectificationParams
00019     {
00020     public:
00021       enum STATE {NOT_INITIALIZED,MATRICES_INITIALIZED};
00022 
00023       // Indique si l'on fait ou non la phase de rectification
00024       enum RECTIFICATION_TYPE { RECTIFICATION_NIL, 
00025         RECTIFICATION_MATRICES,
00026         RECTIFICATION_TABLES,
00027         RECTIFICATION_INVERSE};
00028 
00029 
00030       // Indique si l'on interpole où non pendant la phase de rectification
00031       enum DO_INTERPOLATION { INTERPOLATION_NIL, INTERPOLATION};
00032 
00033 
00034       // Indique si l'on corrige la distortion où non pendant la phase de
00035       //  rectification, et le type de correction.
00036       enum DISTORTION_TYPE{ DISTORTION_NIL,
00037           DISTORTION_R,
00038           DISTORTION_R3};
00039 
00040       // just for knowing with witch camera parameter to use from the CalibrageMatrices
00041       enum IMAGE_SIDE{LEFT=0, RIGHT=1};
00042 
00043 
00044     public:
00045       RectificationParams();
00046       ~RectificationParams();
00047 
00048       void clear();
00049       
00050       //Methodes:
00052       void initialize(ImagesSizes& images_siezes,
00053           CalibrageMatrices& calibrage_matrices,
00054           RectificationParams::IMAGE_SIDE side);
00055       
00056 
00060       void initializeTables(RectificationParams::DISTORTION_TYPE type_distortion);
00061 
00065       void initializeTables_michel(RectificationParams::DISTORTION_TYPE type_distortion);
00066 
00067 
00068       //data members:
00070       RectificationParams::STATE state;
00071       
00072       // Suivent toutes les matrices. Leur nom doit être explicite, non ?
00074       double    intrinseque[16];
00076       double    rectification[9];
00078       double    distortion[3];
00080       double    intrinseque_rectifiee[16];
00081       
00082       // Cette structure (qui donne toutes les tailles de images) est utile pour
00083       // la création et l'initialisation des images d'incides ci-dessous.
00085       ImagesSizes imagesSizes; 
00086       
00087       // Remarque : les images d'indices ont la taille des images après réduction
00088       // (c'est au moment de la rectification que l'on considérera une éventuelle
00089       // sous-image)
00090       short*    table_i;
00091       short*    table_j;
00092       short*    inverse_table_i;
00093       short*    inverse_table_j;
00094 
00095 
00096     };
00097     
00098   }// namespace stereo
00099 }// namespace jafar
00100 
00101 #endif //RECTIFICATION_PARAMS_HPP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:28 for Jafar by doxygen 1.7.6.1
LAAS-CNRS