SegmentableRecognition.h
Go to the documentation of this file.
00001 // *****************************************************************
00002 // -----------------------------------------------------------------
00003 // SegmentableRecognition.h 
00004 // -----------------------------------------------------------------
00005 // *****************************************************************
00006 
00007 // *****************************************************************
00008 // Author:  Pedram Azad
00009 // Date:    2006/02/23
00010 // *****************************************************************
00011 
00012 
00013 // *****************************************************************
00014 // double-include protection
00015 // *****************************************************************
00016 
00017 #ifndef _SEGMENTABLE_RECOGNITION_H_
00018 #define _SEGMENTABLE_RECOGNITION_H_
00019 
00020 
00021 // *****************************************************************
00022 // necessary includes
00023 // *****************************************************************
00024 
00025 #include "Structs/ObjectDefinitions.h"
00026 
00027 
00028 // *****************************************************************
00029 // forwards
00030 // *****************************************************************
00031 
00032 class CObjectFinder;
00033 class CObjectFinderStereo;
00034 class CStereoCalibration;
00035 class CRegionFilterInterface;
00036 class CByteImage;
00037 class CSegmentableDatabase;
00038 class CColorParameterSet;
00039 
00040 
00041 
00042 
00043 class CSegmentableRecognition
00044 {
00045 public:
00046         // constructor
00047         CSegmentableRecognition();
00048         
00049         // destructor
00050         ~CSegmentableRecognition();
00051         
00052 
00063         bool Init(const char *pColorParameterFile, const char *pCameraParameterFileDeprecated, const char *pCameraParameterFile,
00064                           const char *pObjectDatabaseConfigurationFile, const char* pDataPathPrefix = 0);
00065 
00074     bool Init(CColorParameterSet* pColorParameterSet, CStereoCalibration* pStereoCalibration, const char *pObjectDatabaseConfigurationFile);
00075 
00083     bool InitWithoutDatabase(CColorParameterSet* pColorParameterSet, CStereoCalibration* pStereoCalibration);
00084     
00091     bool AddClass(const std::string& classPath);
00092 
00098         void SetStereoCalibration(CStereoCalibration *pStereoCalibration);
00099 
00105         void SetRecognitionThresholds(float fSizeRatioThreshold, float fCorrelationThreshold);
00106         
00119         void DoRecognition(const CByteImage * const *ppInputImages, CByteImage **ppResultImages,
00120                 int nMinPixelsPerRegion, bool bBlobsOnly = false, float fMaxEpipolarDistance = 10,
00121                 ObjectColor color = eNone, bool bTrack = false, bool bInputImagesAreUndistorted = false);
00122                 
00136         void DoRecognitionSingleObject(const CByteImage * const *ppInputImages, CByteImage **ppResultImages, const char *pObjectName,
00137                 int nMinPixelsPerRegion, float fMaxEpipolarDistance = 10,
00138                 ObjectColor color = eNone, bool bTrack = false, bool bInputImagesAreUndistorted = false);
00139         
00145         const Object3DList& GetObject3DList() { return m_object3DList; }
00146 
00152         const CStereoCalibration* GetStereoCalibration();
00153 
00159         const CColorParameterSet* GetColorParameterSet() { return m_pColorParameterSet; }
00160         
00166         CSegmentableDatabase* GetObjectDatabase() { return m_pSegmentableDatabase; }
00167 
00173         void SetVerbose(bool bVerbose);
00174         
00175         
00176 private:
00177         // private methods
00178         void _DoRecognition(const CByteImage * const *ppInputImages, CByteImage **ppResultImages, const char *pObjectName = 0,
00179                 int nMinPixelsPerRegion = 500, bool bBlobsOnly = false, float fMaxEpipolarDistance = 10,
00180                 ObjectColor color = eNone, bool bTrack = false, bool bInputImagesAreUndistorted = false);
00181         void FindAndClassifyBlobs(CObjectFinderStereo *pObjectFinderStereo, const CByteImage * const *ppInputImages,
00182                         CByteImage **pResultImages, CByteImage *pGrayImage, const char *pObjectName, ObjectColor color,
00183                         int nMinPixelsPerRegion, bool bBlobsOnly, float fMaxEpipolarDistance, bool bInputImagesAreUndistorted);
00184         bool RecognizeAndLocalizeObject(CByteImage *pGrayImage, Object3DEntry &entry, const char *pObjectName);
00185         void PostProcessResultList();
00186         
00187         // public attributes
00188         CRegionFilterInterface *m_pCompactRegionFilter;
00189         
00190         CObjectFinderStereo *m_pObjectFinderStereo;
00191         
00192         CSegmentableDatabase *m_pSegmentableDatabase;
00193         
00194         CByteImage *m_pGrayImageBig;
00195         CByteImage *m_pGrayImageSmall;
00196         
00197         CColorParameterSet *m_pColorParameterSet;
00198         
00199         Object3DList m_object3DList;
00200         
00201         bool m_bVerbose;
00202 };
00203 
00204 
00205 
00206 #endif /* _SEGMENTABLE_RECOGNITION_H_ */


asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Thu Jun 6 2019 21:46:58