Main Page | Modules | Class List | File List | Class Members | File Members

corner_feature.h

Go to the documentation of this file.
00001 
00014 /* This library is free software; you can redistribute it and/or
00015    modify it under the terms of the GNU Lesser General Public
00016    License as published by the Free Software Foundation; either
00017    version 2.1 of the License, or (at your option) any later version.
00018 
00019    This library is distributed in the hope that it will be useful,
00020    but WITHOUT ANY WARRANTY; without even the implied warranty of
00021    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00022    Lesser General Public License for more details.
00023 
00024    You should have received a copy of the GNU Lesser General Public
00025    License along with this library; if not, write to the Free Software
00026    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00027 */
00028 
00029 #ifndef _GAN_CORNER_FEATURE_H
00030 #define _GAN_CORNER_FEATURE_H
00031 
00032 #include <gandalf/common/misc_defs.h>
00033 #include <gandalf/vision/camera.h>
00034 #include <gandalf/vision/cameraf.h>
00035 #include <gandalf/vision/local_feature.h>
00036 #include <gandalf/image/pixel.h>
00037 #include <gandalf/linalg/2x3matrixf.h>
00038 
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042 
00056 typedef struct Gan_CornerFeature
00057 {
00059    unsigned short r, c;
00060 
00063    Gan_Vector2_f p;
00064 
00066    Gan_Vector2_f pu;
00067 
00069    float strength;
00070 
00072    Gan_SquMatrix22_f N;
00073 
00075    Gan_SquMatrix22_f Ni;
00076 
00078    int status;
00079 
00081    int index;
00082 } Gan_CornerFeature;
00083 
00087 typedef struct Gan_CornerFeatureMap
00088 {
00090    unsigned ncorners;
00091 
00093    Gan_CornerFeature *corner;
00094 
00096    unsigned max_ncorners;
00097 
00099    unsigned height, width;
00100 
00102    Gan_Bool A_set;
00103 
00106    Gan_Matrix23_f A, Ai;
00107 
00110    Gan_Camera_f camera;
00111 
00113    Gan_LocalFeatureMap local_fmap;
00114 
00116    Gan_Bool alloc;
00117 } Gan_CornerFeatureMap;
00118 
00119  Gan_CornerFeatureMap *gan_corner_feature_map_form ( Gan_CornerFeatureMap *cmap,
00120                                                     unsigned max_ncorners );
00121  void gan_corner_feature_map_free ( Gan_CornerFeatureMap *cmap );
00122  Gan_Bool gan_corner_feature_map_clear ( Gan_CornerFeatureMap *cmap,
00123                                         unsigned height, unsigned width,
00124                                         Gan_Matrix23_f *A, Gan_Camera *camera,
00125                                         Gan_LocalFeatureMapParams *lpms );
00126  Gan_CornerFeature *gan_corner_feature_add ( Gan_CornerFeatureMap *cmap,
00127                                             unsigned r, unsigned c,
00128                                             float rf, float cf,
00129                                             Gan_SquMatrix22_f *N,
00130                                             int status, int index,
00131                                             float strength );
00132  Gan_Bool gan_corner_feature_map_postprocess ( Gan_CornerFeatureMap *cmap );
00133 
00144  Gan_CornerFeatureMap *gan_corner_feature_map_alloc ( unsigned max_ncorners );
00145 
00154 #ifdef __cplusplus
00155 }
00156 #endif
00157 
00158 #endif /* #ifndef _GAN_CORNER_FEATURE_H */

Generated on Fri Mar 17 12:44:47 2006 by  doxygen 1.3.9.1