CvTHaarFeature和CvFastHaarFeature以及CvIntHaarFeatures的区别

本博是笔者读书笔记整理,欢迎转载,请注明出处,如有不足,还望网友们指教。

1 结构体CvTHaarFeature

typedef struct CvTHaarFeature

{

    char desc[CV_HAAR_FEATURE_DESC_MAX];//表示haar特征的类型描述

    int  tilted;//为0时表示是垂直,1时表示旋转

    struct

    {

        CvRect r;//矩形,用坐标表示(x,y,w,h,权重)

        float weight;//权重

    } rect[CV_HAAR_FEATURE_MAX];//CV_HAAR_FEATURE_MAX组成矩形特征最多的个数,一般为3个

} CvTHaarFeature;

 

     结构体CvTHaarFeature是最简单的一类haar特征,有三个矩形构成,不管实际的haar特征是不是有三个矩形,在建立内存时都分配三个矩形的内存,如果rect[2].weight!=0,那么,这个特征包含3个矩形,否则就只包含2个矩形。所以我认为CvTHaarFeature中T的含义是three的含义,不知道对不对,还望网友们批评指正 哭


2  CvFastHaarFeature结构体

typedef struct CvFastHaarFeature

{

    int tilted;//为0时表示是垂直,1时表示旋转

    struct

    {

        int p0, p1, p2, p3;
//特征中的矩形的四个端点直接用相对于原点的距离,不过是用像素值表示,这样在计算中可以直接利用积分图,所以提高了计算速度,降低了时间复杂度

        float weight;//权重

    } rect[CV_HAAR_FEATURE_MAX];

} CvFastHaarFeature;

 

    CvFastHaarFeature结构体 结构体CvTHaarFeature都是表示的最简单的三矩形的haar特征,不过CvTHaarFeature是用相对坐标表示的,比如r(x,y,w,h,weight),其中(x,y)是一个矩形左上角相对原点的坐标,w,h是该矩形的宽表示的,那么矩形的其他的三个矩形是由(x,y)和w,h相对表示出来的。

CvFastHaarFeature结构体中,矩形中的每一点的坐标都是用相对坐标原点的坐标表示,如上所示。要想把CvTHaarFeature中的矩形r(x,y,w,h,weight),转化为CvFastHaarFeature的形式,计算公式如下:

P0 = rect.x + step*rect.y;
P1 = rect.x + rect.width + step*rect.y;
P2 = rect.x + step*(rect.y + rect.height);
P3 = rect.x + rect.width +step*(rect.y+rect.height);

结构体CvIntHaarFeatures

typedef struct CvIntHaarFeatures
{
   CvSize winsize;           <span style="font-family:SimSun;">//</span>采特征的窗口的大小,即样本图像的大小。
   int count;                <span style="font-family:SimSun;">//</span>总特征的个数。
   CvTHaarFeature* feature;  <span style="font-family:SimSun;">//</span>指向所有的Haar特征。
   CvFastHaarFeature* fastfeature;
} CvIntHaarFeatures;

CvIntHaarFeatures中Int是内部的意思,表示存储所有Haar特征的结构体,Haar特征由指针CvTHaarFeature所指向。该结构体把上面两种结构体综合了起来。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值