Opencv中SIFT源码特征结构体


/*
此结构体可存储2种类型的特征点
FEATURE_OXFD表示牛津大学VGG提供的源码中的特征点格式
FEATURE_LOWE表示David.Lowe提供的源码中的特征点格式。
如果是OXFD类型的特征点,结构体中的a,b,c成员描述了特征点南园的偏向区域(椭圆的参数),即领域。
如果是LOWE类型的特征点,结构体中的scl和ori成员描述了特征点的大小和方向。
fwd_match,bck_match,mdl_match一般同时只有一个起作用,用来指明此特征点对应的匹配点 
/*

struct feature { double x; /**< x coord */ //特征点的x坐标 double y; /**< y coord */ //特征点的y坐标 double a; /**< Oxford-type affine region parameter */ //OXFD特征点中椭圆的参数 double b; /**< Oxford-type affine region parameter */ //OXFD特征点中椭圆的参数 double c; /**< Oxford-type affine region parameter */ //OXFD特征点中椭圆的参数 double scl; /**< scale of a Lowe-style feature *///LOWE特征点的尺度 double ori; /**< orientation of a Lowe-style feature */ //LOWE特征点的方向 int d; /**< descriptor length */ //特征描述子的长度,即维数,一般是128 double descr[FEATURE_MAX_D]; /**< descriptor */ //128维的特征描述子,即一个double数组 int type; /**< feature type, OXFD or LOWE */ //特征点类型 int category; /**< all-purpose feature category */ struct feature* fwd_match; /**< matching feature from forward image */ //指明此特征点对应的匹配点 struct feature* bck_match; /**< matching feature from backmward image */ //指明此特征点对应的匹配点 struct feature* mdl_match; /**< matching feature from model */ //指明此特征点对应的匹配点 CvPoint2D64f img_pt; /**< location in image */ //特征点的坐标,等于(x,y) CvPoint2D64f mdl_pt; /**< location in model */ //当匹配类型是mdl_match时用到 void* feature_data; /**< user-definable data */ //用户定义的数据: //在SIFT极值点检测中,是detection_data结构的指针 //在k-d树搜索中,是bbf_data结构的指针 //在RANSAC算法中,是ransac_data结构的指针 };

  

posted @ 2014-07-03 09:58  dupuleng  阅读(595)  评论(0编辑  收藏  举报