平均图像过滤是一种非常常见的图像预处理功能,可以找到平均过滤的简短介绍here。在Opencv中,这是由cv::blur完成的。
当平均滤波器的大小增加时,此处理所需的时间也会增加。提高平均滤波速度的常用方法可分为两类:
所以我的问题是:通常使用什么方法来提高平均图像过滤的速度?如果有人就此主题开展过工作,那么每种方法的优势和劣势是什么?有人将cv :: blur的速度与改进的平均图像过滤进行了比较吗?谢谢。
答案 0 :(得分:2)
对于简单的平均滤波器,最佳选择是使用快速空间域优化,就像您链接的那样。另一个例子是Integral Images。
基本思想是在滤波器框内,某些和在相邻的框之间共享,不需要再次计算。缺点是您需要额外的内存来存储这些中间值。优点是复杂性与内核大小无关(给定N×N图像,复杂度为N * N * constant
)。
只有当您已经准备好FFT图像时,使用频域技术才是方便的,可能因为它需要进行其他类型的处理。否则,计算2D FFT是N * N * logN * constant
操作,因此优于空间优化滤波。