数字图像处理 低通、高通、带阻和带通滤波器

1、过滤器类型

        空间域和频域滤波器通常分为四种类型的滤波器——低通、高通、带阻和带通滤波器。

        低通滤波器:只允许通过低频细节,衰减高频细节。 示例:平滑过滤器。

        高通滤波器:只允许通过高频细节,衰减低频细节。 示例:锐化蒙版过滤器。

        带阻滤波器:衰减一定频率范围内的信号。 允许低于某个阈值和高于另一个阈值的频率通过。

        带通滤波器:只允许特定频带内的信号通过,衰减低于阈值和高于另一个阈值的频率通过。

δ(x, y)是单位脉冲核

2、生成波带片

        波带片用于测试过滤器的特性。 有多种版本的波带片,我将使用的一个可以通过以下方式生成:,其中 x, y 属于 [-8.2, 8.2] 以 0.0275 的步长递增,形成 597x597 的图像。

         python参考代码

def zone(x, y):
    return 0.5 * (1 + math.cos(x * x + y * y))

SIZE = 597
image = np.zeros((SIZE, SIZE))

start = -8.2
end = 8.2
step = 0.0275

def dist_center(y, x):
    global SIZE
    center = SIZE / 2
    return math.sqrt( (x - center)**2 + (y - center)**2)

for y in range(0, SIZE):
    for x in range(0, SIZE):
        if dist_center(y, x) > 300:
            continue
        y_val = start + y * step
        x_val = start + x * step
        image[y, x] = zone(x_val, y_val)

         波带片图片

标题

3、在波带片上应用低通滤波器

        python参考代码

kernel_size = 15

lowpass_kernel_gaussian = gkern(kernel_size)
lowpass_kernel_gaussian = lowpass_kernel_gaussian / lowpass_kernel_gaussian.sum()

lowpass_kernel_box = np.ones((kernel_size, kernel_size))
lowpass_kernel_box = lowpass_kernel_box / (kernel_size * kernel_size)

lowpass_image_gaussian = cv2.filter2D(image, -1, lowpass_kernel_gaussian)
lowpass_image_box = cv2.filter2D(image, -1, lowpass_kernel_box)

        示例图像

4、在波带片上应用高通滤波器

        在空间域中,可以通过从图像本身中减去低通滤波图像来获得高通滤波图像(如非锐化掩模)。

        python参考代码

highpass_image_gaussian = image - lowpass_image_gaussian
highpass_image_gaussian = np.absolute(highpass_image_gaussian)

highpass_image_box = image - lowpass_image_box
highpass_image_box = np.absolute(highpass_image_box)

        示例图像 

5、在波带片上应用带阻滤波器

        类似地,可以通过将低通滤波与高通滤波图像(在不同阈值下)相加来获得带阻滤波图像。

         python参考代码 

bandreject_image = lowpass_image_gaussian + highpass_image_box

        示例图像 

6、在波带片上应用带通滤波器

         而带通滤波图像可以通过从图像本身中减去带阻滤波图像来获得。

        python参考代码 

bandpass_image = image - bandreject_image
bandpass_image = np.absolute(bandpass_image)

        示例图像

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/124477680