提高平均图像过滤速度的方法

时间:2013-11-15 09:10:25

标签: c++ opencv image-processing

平均图像过滤是一种非常常见的图像预处理功能,可以找到平均过滤的简短介绍here。在Opencv中,这是由cv::blur完成的。

当平均滤波器的大小增加时,此处理所需的时间也会增加。提高平均滤波速度的常用方法可分为两类:

所以我的问题是:通常使用什么方法来提高平均图像过滤的速度?如果有人就此主题开展过工作,那么每种方法的优势和劣势是什么?有人将cv :: blur的速度与改进的平均图像过滤进行了比较吗?谢谢。

1 个答案:

答案 0 :(得分:2)

对于简单的平均滤波器,最佳选择是使用快速空间域优化,就像您链接的那样。另一个例子是Integral Images

基本思想是在滤波器框内,某些和在相邻的框之间共享,不需要再次计算。缺点是您需要额外的内存来存储这些中间值。优点是复杂性与内核大小无关(给定N×N图像,复杂度为N * N * constant)。

只有当您已经准备好FFT图像时,使用频域技术才是方便的,可能因为它需要进行其他类型的处理。否则,计算2D FFT是N * N * logN * constant操作,因此优于空间优化滤波。