1. 时域平均
采集同一场景的n幅图像,然后对这些图像进行平均,噪声方差降低到原来的1/n。
缺点:必须采集多幅图像,运行速度慢。
halcon中可以采用算子mean_n实现该功能。该算子解释如下:
The operator mean_n generates the pixel-by-pixel mean value of all channels . For each coordinate point the sum of all gray values at this coordinate is calculated. The result is the mean of the gray values (sum divided by the number of channels). The output image has one channel.
例子如下:
compose3(Channel1,Channel2,Channel3,&MultiChannel);
mean_n(MultiChannel,&Mean);
2. 均值滤波器
在像素数是(2n+1)X(2m+1)的一个空间窗口(掩码)内,计算窗口内所有像素的平均,噪声方差降低到1/((2n+1)X(2m+1))。
优点:计算速度快
缺点:并不能完全消除高频噪声
HALCON中采用算子mean_image实现该功能。函数签名如下:
mean_image(Image : ImageMean : MaskWidth, MaskWidth: )
MaskWidth和MaskWidth是掩码的尺寸,也就是2n+1和2m+1
3. 高斯滤波器
基于正态分布随机变量的概率密度函数(高斯函数)构造的滤波器。相比均值滤波器,更能有效消除高频噪声。关注滤波质量时优先考虑的滤波器。
缺点:速度稍逊均值滤波器
halcon中采用算子gauss_filter实现该功能。函数签名如下:
gauss_filter(Image : ImageGauss : Size : )
其中参数Size是滤波器尺寸,它和高斯函数的σ关系如下:
Size | σ |
3 | 0.6 |
5 | 1.075 |
7 | 1.55 |
9 | 2.025 |
11 | 2.55 |
根据他人经验,掩码尺寸为5X5的均值滤波效果与σ=1.41的高斯滤波效果等同。也就是说5X5的均值滤波效果与滤波器尺寸为5~7的高斯滤波效果相似。滤波器尺寸继续增大时,高斯滤波效果要明显好于均值滤波。
4. 中值滤波器
在像素数是(2n+1)X(2m+1)的一个空间窗口(掩码)内,取排序后的像素中值。特殊场合应用(如去除椒盐噪声)。顺便说一句,halcon还有个算子mean_sp,也可以用来去除椒盐噪声。
halcon中有4种中值滤波算子。
median_image:掩码窗口是圆形或者方形
median_rect:掩码窗口是矩形
median_separate:掩码窗口是矩形,和上面两个算子相比,执行速度快很多
median_weighted:前面的中值滤波算子掩码窗口内的像素权重都为1,而这个算子可以按照gauss和inner两种方式设置权重