首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

【OpenCV】利用积分图像法高速计算Haar特征

2012-11-26 
【OpenCV】利用积分图像法快速计算Haar特征由于Haar特征是矩形中黑色区域所有像素的和减去白色区域所有像素

【OpenCV】利用积分图像法快速计算Haar特征

由于Haar特征是矩形中黑色区域所有像素值的和减去白色区域所有像素值的和。在之前(《计算Haar特征个数》)我们看到,24*24的图片中,有115984个特征,远远大于其像素个数。如果计算每个特征的像素和,计算量会非常大,而且很多次运算是重复的。

Paul Viola提出一种利用积分图像法快速计算Haar特征的方法(《Rapid object detection using a boosted cascade of simple features》)。简单说来,就是先构造一张“积分图”(Integral image),也叫Summed Area Table,之后任何一个Haar矩形特征都可以通过查表的方法(Look Up Table)和有限次简单运算得到,大大减少了运算次数。

将矩形表示为:【OpenCV】利用积分图像法高速计算Haar特征

其中,x,y表示起点坐标,w,h表示宽,高,a表示角度。

矩形内像素值之和表示为:【OpenCV】利用积分图像法高速计算Haar特征

0°矩形特征
构造积分图像Summed Area Table【OpenCV】利用积分图像法高速计算Haar特征
积分图像中,每个点存储是其左上方所有像素之和:
【OpenCV】利用积分图像法高速计算Haar特征
其中I(x,y)表示图像(x,y)位置的像素值。积分图像可以采用增量的方式计算:
【OpenCV】利用积分图像法高速计算Haar特征
初始边界:SAT(-1,y)=SAT(x,-1)=SAT(-1,-1)=0
所以,只需要对整张图像遍历一次就可以求得这张图的积分图像。

计算Haar矩形特征

如图所示:

【OpenCV】利用积分图像法高速计算Haar特征

利用积分图计算可计算矩形区域内像素和:

【OpenCV】利用积分图像法高速计算Haar特征


所以,无论矩形r的尺寸大小,只需查找积分图像4次就可以求得任意矩形内像素值的和。


45°Rotated矩形特征


构造旋转积分图像Rotated SummedArea Table

 【OpenCV】利用积分图像法高速计算Haar特征

旋转积分图中,每个点存储是其左上方延伸出的45°区域范围内所有像素之和:

【OpenCV】利用积分图像法高速计算Haar特征

RSAT(x,y)也采用增量方计算得到:

【OpenCV】利用积分图像法高速计算Haar特征

初始边界:RSAT(-1,y)=RSAT(x,-1)=RSAT(x,-2)=0
          RSAT(-1,-1)=RSAT(-1,-2)=0

公式具体示意如下图:

【OpenCV】利用积分图像法高速计算Haar特征


计算Haar矩形特征

同样的方式,可推出每个矩形内像素和的计算公式:

【OpenCV】利用积分图像法高速计算Haar特征*图太难画了,不清楚的自己在草稿纸上试试吧~

同样的,无论旋转矩形r的尺寸大小,只需要查找积分图像4次就可以求得任意矩形内像素值得和。



(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)


3楼jaguarcxj昨天 19:55
水平垂直方向上的积分图能够用于旋转后的Haar小波响应计算吗?n比如SURF中确定特征点主方向以后,要构建一个沿主方向的正方形区域,haar小波也要依主方向旋转到一定角度对正方形区域计算响应。这样积分图是水平垂直的,可是haar小波不再是水平垂直的了,如果还想利用原来的积分图像,求这个区域的响应值,应该做什么样的变换呢?
2楼masikkk昨天 22:03
学习了
1楼xiaojidan2011昨天 13:45
学习了 厉害的呀

热点排行