00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _SO_PATTERN_MATCHING_DETAILS_2D_H_
00021 #define _SO_PATTERN_MATCHING_DETAILS_2D_H_
00022 #ifdef OIV_FEI_INTERNAL
00023
00024 #include <Inventor/fields/SoFieldContainer.h>
00025 #include <Inventor/fields/SoMFFloat.h>
00026 #include <Inventor/fields/SoMFVec2f.h>
00027
00028 #include <ImageViz/SoImageViz.h>
00029
00037 class SoPatternMatchingDetails2d : public SoFieldContainer
00038 {
00039 SO_FIELDCONTAINER_HEADER( SoPatternMatchingDetails2d );
00040 public:
00044 class MatchingResult
00045 {
00046 public:
00052 SbMatrix3 getMatrix() const;
00053
00057 float getScore() const
00058 { return m_similarity; }
00059
00064 SbVec2f getMatchingPosition() const
00065 { return m_position; }
00066
00071 float getMatchingRotation() const
00072 { return m_rotation; }
00073
00078 SbVec2f getMatchingScale() const
00079 { return m_scale; }
00080
00081
00082 MatchingResult( SbVec2f position, SbVec2f scale, float rotation, float score )
00083 : m_position( position )
00084 , m_scale ( scale )
00085 , m_rotation( rotation )
00086 , m_similarity( score )
00087 {}
00088
00089 private:
00090 SbVec2f m_position;
00091 SbVec2f m_scale;
00092 float m_rotation;
00093 float m_similarity;
00094 };
00095
00099 SoPatternMatchingDetails2d();
00100
00104 int getNumOfObjectDetected() const;
00105
00110 MatchingResult getDetail( int index ) const;
00111
00115 void insertDetail( MatchingResult detail );
00116
00117 private:
00119 virtual ~SoPatternMatchingDetails2d();
00120
00125 std::vector<MatchingResult> m_outMatches;
00126 };
00127
00128 #endif // OIV_FEI_INTERNAL
00129 #endif //_SO_PATTERN_MATCHING_DETAILS_2D_H_
00130
00131