1 / 6
文档名称:

【图像处理】快速计算积分图.doc

格式:doc   大小:147KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

【图像处理】快速计算积分图.doc

上传人:fy5186fy 2016/8/25 文件大小:147 KB

下载得到文件列表

【图像处理】快速计算积分图.doc

相关文档

文档介绍

文档介绍:【图像处理】快速计算积分图分类:【算法分析】【机器视觉】【图像处理】 2014-01-06 21:39 4398 人阅读评论(14) 收藏举报目录(?) [+] 积分图是图像中十分常用的方法,最初是在 Haar 特征的快速计算中学到(参考博文: 利用积分图像法快速计算 Haar 特征),后来发现在均值滤波,二值化等图像处理方法中也十分常见。积分图的简要介绍可以参考博文: 利用积分图像法快速计算 Haar 特征,这里不再重复了。本篇主要是小记一下积分图的计算方法。由于积分图中每个单元存储的信息是原图中此位置左上角所有像素之和,所以对一张 W*H 的图像直接求取积分图,需要: (1+2+...+W-1)*H+(1+2+...+W)*(H=1) = (w-2)*H/(W-1)+2(W+1)*(H-1)/W 次加法。一种简单的快速计算方法最直接的快速计算方法是利用以计算积分求当前位置的积分,其思想正如快速计算Haar 特征的方法。即,Integral(i,j) =Integral(i,j-1) +Integral(i-1,j) - Integral(i-1,j-1) +Image(i,j); 于是,对一张 W*H 的图像直接求取积分图,需要: (W-1)+(H-1)+3*(W-1)*(H-1) 次加法。代码如下: [cpp] view plain copy integral(unsigned char* inputMatrix, unsigned long* outputMatrix, int width, int height){ 2.//calculate integral ofthe first line (int i=0;i<width;i++){ [i] =inputMatrix[i]; (i>0){ [i] +=outputMatrix[i-1]; 7.}8.} (int i=1;i<height;i++){ 10. int offset =i*width; 11. //first column ofeach line 12. outputMatrix[offset] =outputMatrix[offset-wi dth]+inputMatrix[offset]; 13. //other columns [offset+j] =outputMatrix [offset+j-1] +outputMatrix[offset-width] +outputMatrix[of fset-width-1] +inputMatrix[offset]; 15. }16. }17. return ;18. } 改进的快速计算方法通过观察上一种方法,发现积分 Integral(i,j) 并不需要由三个位置的积分计算出来,只需要左边 Integral(i,j-1) 加上当前列的和即可。即,Integral(i,j) =Integral(i,j-1) +ColumnSum(j); 因此,对一张 W*H 的图像直接求取积分图,只需要: (W-1)+(H-1)+2*(W-1)*(H-1) 次加法。代码如下: [cpp] view plain co