理想滤波器、巴特沃斯滤波器、高斯滤波器实现(包含低通与高通,代码实现与分析)

本篇博客聚焦理想滤波器、巴特沃斯滤波器、高斯滤波器进行原理剖析、代码实现和结果总结,代码含有详细注释,希望帮助大家理解。

以下将从理想低通滤波器理想高通滤波器巴特沃斯低通滤波器巴特沃斯高通滤波器高斯低通滤波器高斯高通滤波器六个块题进行阐述,每一块题将分为实验原理实验代码展示实验结果分析三部分进行讲解。

在本博客中使用的待处理图像如下所示:

理想低通滤波器

实验原理

        低通滤波可保留图像中的低频分量而除去高频分量。图像中的边缘和噪声都对应图像傅里叶频谱中的高频部分,所以低通滤波可以除去或削弱噪声的影响并模糊边缘轮廓。理想低通滤波器具有传递函数:

H(u, v)=\left\{\begin{array}{l}1, D(u, v) \leq D_{0} \\0, D(u, v)>D_{0}\end{array}\right.

        其中$D_{0}$为理想低通滤波器的截止频率。理想低通滤波器在半径为$D_{0}$的范围内,所有频率都可以没有衰减地通过滤波器,该半径之外的所有频率都完全被衰减掉。

        $D(u,v)$是到频谱中心的距离(欧式距离),计算公式如下:

D(u, v)=\left[\left(u-\frac{M}{2}\right)^{2}-\left(v-\frac{N}{2}\right)^{2}\right]^{\frac{1}{2}}

        $M$$N$表示频谱图像的大小,$(\frac{M}{2},\frac{N}{2})$即为频谱中心。

        理想低通滤波器在数学上定义得很清楚,在计算机模拟中也可实现,但在截断频率处直上直下的理想低通滤波器是不能用实际的电子器件实现的。理想低通滤波器图像如下图所示。

一个理想低通滤波器函数的透视图 

以图像形式显示的滤波器

滤波器镜像横截图

        可以看出,理想低通滤波器具有平滑图像的作用。但是理想低通滤波器的过渡非常急剧,高频信息全部消失,严重降低了复原图像的质量,有很严重的振铃现象。

        振铃现象产生的本质原因是:对于窗函数(理想低通滤波器形式)而言,经过逆傅里叶变换转换到空域后的函数形式为辛格函数($sinc$),$sinc$两边的余波将对图像产生振铃现象,如下图。

矩形窗函数和辛格函数 

        在空间域将低通滤波作为卷积过程来理解的关键是空间滤波函数的特性——可将空间滤波函数分为两部分:原点处的中心部分,中心周围集中的成周期分布的外围部分。前者决定模糊,后者决定振铃现象。如下图所示。若外围部分有明显的震荡,则增强图像会出现振铃。利用傅里叶变换,我们发现,若频域滤波函数具有陡峭变化,则傅里叶逆变换得到的空域滤波函数会在外围出现震荡。

理想低通滤波器在频域和空域内的函数透视图 

实验代码实现

理想低通滤波器的代码实现如下,该部分只展示了绘制截止频率$D_{0}=5$图像的相关代码,绘制其他频率图像的代码只需修改截止频率数值即可。该部分使用Matlab代码实现。

close all;
clc;

I = imread("待处理图片.jpg");%读取图片
I = rgb2gray(I);%将图片转化为灰度图像
subplot(331),
imshow(I);%展示图象
title('原始图像');

%'fft_data = fftshift(fft2(im2double(I)));'步骤指对图像进行二维傅里叶变换,可以拆分为三步进行:
%该步将灰度图像I的值转为double并进行归一化,防止原I的unit8类型只能为整数值
%从而导致在涉及到双精度数值时被迫截断而产生误差
%I = im2double(I);
%该步将灰度图像I进行了fft变换
%fft_data = fft2(I);
%该步将fft变换后的频谱图进行了频移,将变换后的图像频谱中心从矩阵的原点移到矩阵的中心
%fft_data = fftshift(fft_data);
fft_data = fftshift(fft2(im2double(I)));

[height, width] = size(fft_data);%获取经fft变换后的矩阵的尺寸
center_x = round(height / 2);%获取中心点的x坐标
center_y = round(width / 2);%获取中心点的y坐标
D0 = 5;%设置截断频率为5
for x = 1 : height
    for y = 1 : width
        distance = sqrt((x - center_x) ^ 2 + (y - center_y) ^ 2);%求取图像上的(x,y)点距中心原点的距离
        if distance <= D0
            H = 1;%如果小于截止频率,则频域的变换函数值设置为1(若为高通则改为0)
        else
            H = 0;%如果大于截止频率,则频域的变换函数值设置为0(若为高通则改为1)
        end
        fft_data(x, y) = fft_data(x, y) * H;%频域变换,直接相乘
    end
end

fft_data = ifft2(ifftshift(fft_data));%将频谱图的中点从中心处移动到原点处,并进行逆傅里叶变换
return_image = real(fft_data);%显示图像时取实部即可
subplot(332),
imshow(return_image, []);%显示图像
title('截止频率D0 = 5的变换图像');

最终选取了八个截止频率(分别为5,10,15,20,30,40,50,60)进行测试,在下一部分对结果进行分析。

实验结果分析 

经理想低通滤波器处理后的图像结果展示如下:

        可以看到,随着截止频率的增加,图像越来越清晰,细节展现越来越明显。
        由理想低通滤波器的原理可知,图像经过理想低通滤波器后,表征轮廓、内容的低频信息被保留,表征细节、边缘等突变信息的高频信息被去除,随着截止频率的增大,保留的信息越来越多,故图像也愈发清晰,细节更加明显。
        但处理所得的八个图像均可以观察到较为明显的振铃效应,这是由于理想低通滤波器本身的特性导致的,无法随着频率改变而彻底消除。

理想高通滤波器

实验原理

        理想的高通滤波器与理想低通滤波器相反,1减去低通滤波模板即可。高通滤波可保留图像中的高频分量而除去低频分量。图像中的轮廓和内容都对应图像傅里叶频谱中的低频部分,所以高通滤波可以去除图像的轮廓而保留图像的边缘等突变信息。理想高通滤波器的传递函数为:

H(u, v)=\left\{\begin{array}{l}0, D(u, v) \leq D_{0} \\1, D(u, v)>D_{0}\end{array}\right.

        其中$D_{0}$为理想高通滤波器的截止频率。理想高通滤波器在半径为$D_{0}$的范围内,所有频率都完全被衰减掉,该半径之外的所有频率都可以没有衰减地通过滤波器。

       $D(u,v)$是到频谱中心的距离(欧式距离),计算公式如下:

D(u, v)=\left[\left(u-\frac{M}{2}\right)^{2}-\left(v-\frac{N}{2}\right)^{2}\right]^{\frac{1}{2}}

        $M$$N$表示频谱图像的大小,$(\frac{M}{2},\frac{N}{2})$即为频谱中心。

        与理想低通滤波器同理,理想高通滤波器由于其本身函数的特性,导致在进行逆傅里叶变换时也会出现形如$sinc$函数的图像,进而导致图像产生振铃现象。

实验代码实现

        理想高通滤波器的代码实现与理想低通滤波器代码实现基本一致,唯一需要变动的地方在于当$D(u,v)<=D_{0}$时需设置$H=0$,当$D(u,v)>D_{0}$时需设置$H=1$,修改的位置已在上述代码的注释中表明,在此不再重复贴附代码。
        最终选取了八个截止频率(分别为5,10,15,20,30,40,50,60)进行测试,在下一部分对结果进行分析。

实验结果分析

图像经理想高通滤波器处理后,所得结果如下图所示。

        可以看到,随着截止频率的增加,图像的边缘信息逐渐凸显,而图像的内容信息逐渐消失,而伴随着截止频率的进一步增加,图像的边缘信息也逐渐消失。

        由理想高通滤波器的原理可知,图像经过理想高通滤波器后,表征轮廓、内容的低频信息被去除,表征细节、边缘等突变信息的高频信息被保留,当截止频率增大时,低频信息量越来越少而高频信息量仍然存在,故边缘、细节等信息逐渐凸显,但当截止频率进一步增大时,高频信息量也被去除,故边缘也逐渐消失。

        处理所得的八个图像均可以观察到较为明显的振铃效应,这是由于理想高通滤波器本身的特性导致的,无法随着频率改变而彻底消除。

巴特沃斯低通滤波器

实验原理

        巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。在低通情况下,对$n$阶巴特沃斯低通滤波器,其传递函数为:

H(j\omega )=\frac{1}{1+{​{(\frac{j\omega }{​{​{\omega }_{c}}})}^{2n}}}

        其中,$j$是虚数单位,$\omega$为频率,$\omega_{c}$为截止频率。

        固定$\omega_{c}$为50,巴特沃斯低通滤波器不同阶数下的幅频响应如下图(a)。通过表达式不难看出,阶数越小,巴特沃斯低通滤波器变化越平滑;阶数越大,其变化越剧烈;若阶数足够高,巴特沃斯低通滤波器应该近似理想低通滤波器,并产生显著的振铃效应。同时注意到,所有阶数的幅频特性曲线都交于同一点$(\omega_{c},0.5)$

        固定阶数为5,巴特沃斯低通滤波器在不同频率下的幅频响应如下图(b)。从图中可以看出,随着截止频率的增加,滤波器的通带宽度也会增加。低截止频率对应于较窄的通带,而高截止频率对应于较宽的通带。同时,随着截止频率的增加,滤波器的截止斜率也会变平缓。低截止频率下的滤波器更加陡峭,可以更有效地滤除高频成分,但振铃效应也越明显。

   

实验代码实现

巴特沃斯低通滤波器的代码实现如下,该部分使用Python代码实现。

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
image = cv2.imread('exam_image.jpg', cv2.IMREAD_GRAYSCALE)
plt.rcParams['font.family'] = 'Times New Roman'

cutoff_frequency_list=[5 ,10 ,15 ,20, 30 ,40, 50, 60] #设置取样的截止频率
filter_order_list=[1,5,10] #设置取样的阶数

filename0='image/'

# 傅里叶变换图像
image_frequency = np.fft.fftshift(np.fft.fft2(image))
plt.figure()
image_fftlog = np.log(np.abs(image_frequency) + 1)
plt.imshow(image_fftlog, cmap='gray')
plt.xticks([]), plt.yticks([])
plt.savefig(filename0 + 'fft.png', dpi=300)

# 计算图像的中心坐标
center_x, center_y = image.shape[1] // 2, image.shape[0] // 2

for cutoff_frequency in cutoff_frequency_list:
    for filter_order in filter_order_list:
        # 创建巴特沃斯低通滤波器
        butterworth_filter = np.zeros_like(image, dtype=np.float32)
        for y in range(image.shape[0]):
            for x in range(image.shape[1]):
                distance = np.sqrt((x - center_x) ** 2 + (y - center_y) ** 2)
                # 计算巴特沃斯滤波器的值
                butterworth_filter[y, x] = 1 / (1 + (distance / cutoff_frequency) ** (2 * filter_order))

        filename=filename0+f'{cutoff_frequency}_{filter_order}_'

        # 应用滤波器
        filtered_image_frequency = image_frequency * butterworth_filter
        # 反傅里叶变换
        filtered_image = np.abs(np.fft.ifft2(np.fft.ifftshift(filtered_image_frequency)))

        plt.figure()
        # 显示滤波后的图像
        plt.subplot(111), plt.imshow(filtered_image, cmap='gray')
        plt.title(f'Cutoff Frequency: {cutoff_frequency}, Filter Order: {filter_order}')
        plt.xticks([]), plt.yticks([])
        plt.savefig(filename+'image.png',dpi=300)
        plt.close()

        # 设置坐标轴标签
        # 去除坐标轴上的数字标签
        ax.set_xticklabels([])
        ax.set_yticklabels([])
        ax.set_zticklabels([])
        plt.title(f'Butterworth Filter (Cutoff Frequency: {cutoff_frequency}, Filter Order: {filter_order})')
        plt.savefig(filename+'filter3d.png',dpi=300)
        plt.close()
        print(f'Butterworth Filter (Cutoff Frequency: {cutoff_frequency}, Filter Order: {filter_order})')

小组进行了控制变量分析法得到两组结果——
(1)选取阶数为5,不同截止频率(分别为5,10,15,20,30,40,50,60)的巴特沃斯低通滤波器对测试图像滤波。
(2)选取截止频率为30,不同阶数(分别为1,5,10)的巴特沃斯低通滤波器对测试图像滤波。

在下一部分对结果分别进行分析。

实验结果分析

        ①选取阶数为5,不同截止频率的巴特沃斯低通滤波器对测试图像滤波。实验结果如下图所示。

        可以看出,当截止频率较低时,高频细节会被更严格地抑制,使图像变得更加模糊和平滑。当截止频率较高时,滤波器会通过更多的高频信息,从而保留图像中的细节和纹理。

        ②选取截止频率为30,不同阶数的巴特沃斯低通滤波器对测试图像滤波。实验结果如下图所示。

        可以看出,阶数低的巴特沃斯滤波器滤波后的图像较为平滑,随着阶数增大,幅频曲线变化剧烈,会造成振铃效应增强,当阶数为10时已经能观察出明显的振铃效应。这与理论分析的一致。

        但是在图中还是能够发现一些振铃现象的存在,这是由于巴特沃斯函数本身的特性,导致无法完全避免振铃现象。

巴特沃斯高通滤波器

实验原理

        巴特沃斯高通滤波器的产生公式为:

H(j\omega )=\frac{1}{1+{​{(\frac{​{​{\omega }_{c}}}{j\omega })}^{2n}}}

        其中,$j$是虚数单位,$\omega$为频率,$\omega_{c}$为截止频率。可以看出与巴特沃斯低通滤波器的公式区别在于把分母上的$\omega_{c}$$j\omega$交换了位置。

        固定$\omega_{c}$为50,巴特沃斯高通滤波器不同阶数下的幅频响应如下图(a)。通过表达式不难看出,阶数越小,巴特沃斯高通滤波器变化越平滑;阶数越大,其变化越剧烈;若阶数足够高,巴特沃斯高通通滤波器应该近似理想高通滤波器,并产生显著的振铃效应。同时注意到,所有阶数的幅频特性曲线都交于同一点$(\omega_{c},0.5)$

        固定阶数为5,巴特沃斯高通滤波器不同频率下的幅频响应如下图(b)。从图中可以看出,随着截止频率的增加,滤波器的通带宽度也会减小。低截止频率对应于较宽的通带,而高截止频率对应于较窄的通带。同时,随着截止频率的增加,滤波器的截止斜率也会变平缓。低截止频率下的滤波器更加陡峭,但振铃效应也越明显。

实验代码实现

巴特沃斯高通滤波器的代码实现如下,该部分使用Matlab代码实现。

%巴特沃斯高通滤波器处理图片
close all;
clear;
clc;

I = rgb2gray(imread('待处理图片.jpg'));
subplot(2,2,4)
imshow(I);
title('Original Image');

% 阶数n分别为1,5,10
% 截止频率d0分别为 5 10 15 20 30 40 50 60
%n = [1, 5, 10];
n=[1,5,10];
%d0 = [5, 10, 15, 20, 30, 40, 50, 60];
d0=[30];
for a = 1:length(n)
    for b = 1:length(d0)
   
        s = fftshift(fft2(im2double(I)));
        [N1, N2] = size(s); % 求二维傅立叶变换后图像大小
        n1 = round(N1 / 2);
        n2 = round(N2 / 2);
        for i = 1:N1
            for j = 1:N2
                distance = sqrt((i - n1)^2 + (j - n2)^2);
                if distance == 0
                    h = 0;
                else
                    h = 1 / (1 + (d0(b) / distance)^(2 * n(a)));
                end
                s(i, j) = h * s(i, j);
            end
        end
        s = real(ifft2(ifftshift(s)));
        subplot(2,2,a)
        imshow(s, []);
        %title(['Order:', num2str(n(a)), ' Cutoff Frequency:', num2str(d0(b))]);
        %title([' Cutoff Frequency:', num2str(d0(b))]);
        title(['Order:', num2str(n(a))])
    end
end

小组进行了控制变量分析法得到两组结果——

(1)选取阶数为5,不同截止频率(分别为5,10,15,20,30,40,50,60)的巴特沃斯高通滤波器对测试图像滤波。

(2)选取截止频率为30,不同阶数(分别为1,5,10)的巴特沃斯高通滤波器对测试图像滤波。

在下一部分对结果分别进行分析。

实验结果分析

选取阶数为5,不同截止频率的巴特沃斯高通滤波器对测试图像滤波。实验结果如下图所示。

        可以看出,在巴特沃斯高通滤波器处理后,当截止频率较低时,低频内容会被更多保留,图像变得更加清晰,也更加贴合原图像。当截止频率较高时,滤波器会通过更少的高频信息,低频细节大量丢失,图像只保留下大致的轮廓部分。

选取截止频率为30,不同阶数的巴特沃斯高通滤波器对测试图像滤波。实验结果如下图所示。

        可以看出,阶数低的巴特沃斯滤波器滤波后的图像边缘更加清晰,随着阶数增大,幅频曲线变化剧烈,会造成振铃效应增强,当阶数为5时已经能观察出明显的振铃效应。这也与理论分析的一致。

        在图中总能够发现一些振铃现象的存在,这是由于巴特沃斯函数本身的特性,导致无法完全避免振铃现象。

高斯低通滤波器

实验原理

        高斯低通滤波器使用高斯函数作为滤波核,它在空间域中的数学表示是一个二维高斯分布。通过高斯低通滤波,图像中的高频噪声被抑制,从而实现平滑效果。高斯低通滤波器可以通过调节标准差参数来控制滤波的程度,标准差越大,滤波效果越明显。 

(1)高斯低通滤波器的一维形式为:

H(x) = A \cdot \exp\left(-\frac{x^2}{2\sigma^2}\right)

其中,$H(x)$是高斯函数在位置$x$处的值,$\sigma$是标准差。

(2)高斯低通滤波器的二维形式为:

H(x, y) = \exp\left(-\frac{​{D^2(u,v)}}{​{2\sigma^2}}\right)

$\sigma$是关于中心的扩展度的度量。通过令$D(x,y)=D_{0}$,我们可以把上式写作:

H(x, y) = \exp\left(-\frac{​{D^2(u,v)}}{​{2D_{0} ^2}}\right)

其中,$D_{0}$为截止频率。当$D(u,v)=D_{0}$时,高斯滤波器下降到其最大值的0.607处。

高斯低通滤波器的相关图像

结合上图,可总结高斯低通滤波器相关性质——

  • 平滑效果:高斯低通滤波器通过对图像的像素进行加权平均,减少了图像中的高频细节和噪声。这导致图像变得更加平滑,细节被模糊化。
  • 空间域平滑:高斯低通滤波器在空间域中操作,即对图像的每个像素及其周围像素进行加权平均。滤波器的大小和标准差决定了平滑的程度,较大的滤波器和较小的标准差会导致更强烈的平滑效果。
  • 频率域衰减:高斯低通滤波器在频率域中的响应是一个高斯函数。这意味着它对较低的频率有较高的响应,而对较高的频率有较低的响应。高频成分被衰减,低频成分得到保留。
  • 线性操作:高斯低通滤波器是线性操作,即可以将多个滤波器串联或并联使用。这样可以实现更复杂的滤波效果,例如多尺度平滑或增强图像的某些频率成分。

实验代码实现

高斯低通滤波器的代码实现如下,该部分使用Matlab代码实现。

%图片读取
I = imread('b.jpg');

% D0为截至频率的(相当于设置在傅里叶谱图的半径值)
subplot(3,3,1);imshow(I);title('原图');
I_result = gauss(I,5);
subplot(3,3,2);imshow(I_result);title('截止频率D0=5的变换图像');
I_result = gauss(I,10);
subplot(3,3,3);imshow(I_result);title('截止频率D0=10的变换图像');
I_result = gauss(I,15);
subplot(3,3,4);imshow(I_result);title('截止频率D0=15的变换图像');
I_result = gauss(I,20);
subplot(3,3,5);imshow(I_result);title('截止频率D0=20的变换图像');
I_result = gauss(I,30);
subplot(3,3,6);imshow(I_result);title('截止频率D0=30的变换图像');
I_result = gauss(I,40);
subplot(3,3,7);imshow(I_result);title('截止频率D0=40的变换图像');
I_result = gauss(I,50);
subplot(3,3,8);imshow(I_result);title('截止频率D0=50的变换图像');
I_result = gauss(I,60);
subplot(3,3,9);imshow(I_result);title('截止频率D0=60的变换图像');

% 高斯低通滤波器函数
function [image_result] =gauss (image_orign,D0)
%判断读入的图片是否为灰度图,如果不是则转换为灰度图,如果是则不做操作
if (ndims(image_orign) == 3)
image_2zhi = rgb2gray(image_orign);
else 
image_2zhi = image_orign;
end
%用傅里叶变换将图象从空间域转换为频率域
image_fft = fft2(image_2zhi);
%将零频率成分(坐标原点)变换到傅里叶频谱图中心
image_fftshift = fftshift(image_fft);
%创建一个width行,high列数组,用于保存各像素点到傅里叶变换中心的距离
[width,high] = size(image_2zhi);
D = zeros(width,high);
for i=1:width
    for j=1:high
        %计算像素点(i,j)到傅里叶变换中心的距离
        D(i,j) = sqrt((i-width/2)^2+(j-high/2)^2);
        %高斯低通滤波函数
        H = exp(-1/2*(D(i,j).^2)/(D0*D0));
        %若为高通,则修改为
        %H = 1 - exp(-1/2 * (D(i, j)^2) / (D0^2));
        %将滤波器处理后的像素点保存到对应矩阵
        image_fftshift(i,j)= H*image_fftshift(i,j);
    end
end
image_result = ifftshift(image_fftshift);%将原点反变换回原始位置
image_result = uint8(real(ifft2(image_result)));

end

最终选取了八个截止频率(分别为5,10,15,20,30,40,50,60)进行测试,在下一部分对结果进行分析。

实验结果分析

图像经高斯低通滤波器处理后,所得结果如下图所示。

截止频率较低: 如果截止频率较低,高频分量被更强烈地抑制,图像会更加模糊,丧失一些细节。这种滤波适用于需要强烈平滑和去噪的情况,但可能会损失许多图像细节。
截止频率较高: 如果截止频率较高,滤波器主要保留图像的大部分频率分量,得到的图像和原图更相像。使用较高的截止频率可以突出图像的边缘和纹理,但可能会不会减少多少噪声的影响,因为高频分量中也包含噪声。
        经过高斯低通滤波器处理后的图像不会产生振铃效应,这是由于高斯函数在时域和频域内的图像相同,没有类似$sinc$函数的波形,因而也不会产生振铃效应。这是高斯滤波器的巨大优势。

高斯高通滤波器

实验原理

        高斯高通滤波器是高通滤波器的一种,它是高斯低通滤波器的补数。通过从1减去高斯低通滤波器的结果,得到高斯高通滤波器。它可以突出图像中的细节和边缘,抑制低频分量,从而实现边缘检测等应用。
        高斯高通滤波器的表示为“1-高斯低通表达式”。高斯高通滤波器的二维形式为:

G(x, y) = 1-\exp\left(-\frac{​{D^2(u,v)}}{​{2\sigma^2}}\right)

       

        结合上图,可总结高斯低通滤波器相关性质——

  • 细节增强:高斯高通滤波器通过突出图像中的高频成分来增强细节。高频成分对应着图像中的边缘、纹理和细微变化等细节信息。通过增强这些高频成分,图像的细节会更加明显。
  • 空间域增强:高斯高通滤波器在空间域中操作,即对图像的每个像素及其周围像素进行加权平均。滤波器的大小和标准差决定了增强的程度,较大的滤波器和较小的标准差会导致更强烈的增强效果。
  • 频率域增强:高斯高通滤波器的频率响应对高频成分有较高的响应。因此,它会增强图像中的高频细节,使其更加突出。
  • 线性操作:高斯高通滤波器也是线性操作,可以与其他滤波器进行串联或并联使用,以实现更复杂的增强效果。

实验代码实现

高斯高通滤波器的代码实现与高斯低通滤波器代码实现基本一致,唯一需要变动的地方在于$H'$需要取$1 - H$,修改的位置已在上述代码的注释中表明,在此不再重复贴附代码。
最终选取了八个截止频率(分别为5,10,15,20,30,40,50,60)进行测试,在下一部分对结果进行分析。

实验结果分析

图像经高斯高通滤波器处理后,所得结果如下图所示。

截止频率较低:当截止频率较低时,低频分量被抑制,高频分量得到保留。这样的滤波器可以用于强调图像中的细节和边缘,使它们更加突出。然而,使用较低的截止频率可能会导致图像的整体模糊,因为高通滤波器会削弱图像中的低频信息。
截止频率较高:当截止频率较高时,高通滤波器会保留较高频率的细节,减弱低频分量。较高的截止频率使得图像细节丧失,减弱了边缘部分高频分量,使得图像细节和纹理丧失,同时可能会导致图像中的噪声增加。
        经过高斯高通滤波器处理后的图像不会产生振铃效应,这是由于高斯函数在时域和频域内的图像相同,没有类似$sinc$函数的波形,因而也不会产生振铃效应。这是高斯滤波器的巨大优势。


以上为本次博客的全部内容,欢迎大家讨论以及批评指正~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/411953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

B站UP视频播放数据分析之然冉创业说

【背景介绍】 几年前做过类似的分析&#xff0c;但是B站数据加密了&#xff0c;刚好最近在用selenium&#xff0c;就顺手用它爬一下数据。 df pd.read_excel("然冉创业说_13.2万_output.xlsx") df.head() 以上数据在视频播放页面就可以获取到。 【数据分析】 从数…

进程间通信学习笔记(有名管道和无名管道)

进程间通信方式&#xff1a; 无名管道(pipe)有名管道(fifo)信号(signal)共享内存(mmap)套接字(socket) 无名管道&#xff1a; 在内核里面开辟一片内存&#xff0c;进程1和进程2都可以通过这片内存进行通信 无名管道特点&#xff1a; 只能用于具有亲缘关系的进程之间的通信&am…

SocketError | Socket错误码一览表(每一种错误码的故障排查建议)

Socket错误码一览表 文章目录 Socket错误码一览表前言错误码表 前言 在软件开发和网络通信编程中&#xff0c;SocketError算是一个绕不开的坎。它可能因为各种原因而来&#xff0c;比如网络问题、用户搞错了、应用程序出错等等。本文整理一张SocketError排查建议表格就是为了帮…

Python打发无聊时光:8.用kivy库实现滑动控温的空调界面

第一步&#xff1a;装kivy库 在终端输入: pip install kivy 第二步&#xff1a;复制代码 from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.slider import Slider from kivy.uix.label import Label from kivy.uix.togglebutton import T…

多模态表征—CLIP及中文版Chinese-CLIP:理论讲解、代码微调与论文阅读

我之前一直在使用CLIP/Chinese-CLIP&#xff0c;但并未进行过系统的疏导。这次正好可以详细解释一下。相比于CLIP模型&#xff0c;Chinese-CLIP更适合我们的应用和微调&#xff0c;因为原始的CLIP模型只支持英文&#xff0c;对于我们的中文应用来说不够友好。Chinese-CLIP很好地…

linux centos7.9改dns和ip

vi /etc/sysconfig/network-scripts/ifcfg-ens32 &#xff1a;wq后 重启网络服务 systemctl restart network —————————————————————————— 篇外话题 软件下载 xshell可以从腾讯软件中心下载

【Rust】简介、安装和编译

文章目录 一、Rust简介二、Rust 安装三、Rust 程序结构3.1 模块&#xff08;Modules&#xff09;&#xff1a;3.2 函数&#xff08;Functions&#xff09;&#xff1a;3.3 变量&#xff08;Variables&#xff09;&#xff1a;3.4 控制流&#xff08;Control Flow&#xff09;&a…

面试redis篇-12Redis集群方案-分片集群

原理 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决&#xff1a; 海量数据存储问题高并发写的问题 使用分片集群可以解决上述问题&#xff0c;分片集群特征&#xff1a; 集群中有多个master&#xff0c;每个master保存不同数据每个master都可以有…

python自动化管理和zabbix监控网络设备(有线网络和路由配置部分)

目录 目录 一、拓扑图 二、core-sw1 三、core-sw2 四、sum-sw1 五、sum-sw2 六、FW1 七、DMZ-SW1 结语 一、拓扑图 二、core-sw1 sys sysname core-sw1 vlan batch 10 20 30 40 50 60 100 vlan batch 200 210 220 230 240 250 stp region-configuration region-name…

基于雷达影像的洪水监测技术方法详解

洪水发生时候大多数是阴雨天气&#xff0c;光学影像基本上拍不到有效影像。雷达影像这时候就能发挥其不受天气影像的优点。现在星载的雷达卫星非常多&#xff0c;如高分三号、陆探一号、海丝一号&#xff08;巢湖一号&#xff09;、哨兵1号等。本文以哨兵1号L1地距(GRD)产品来介…

机器学习YOLO操作全流程​​编

YOLO介绍 Ultralytics YOLOv8,是最新的著名实时目标检测和图像分割模型。它基于深度学习和计算机视觉的最新进展,提供了无与伦比的速度和精度性能。由于其精简的设计,适用于各种应用,并且可以轻松适配不同的硬件平台,从边缘设备到云端API。 探索 YOLOv8 文档,这是一个全…

pytorch -- CIFAR10 完整的模型训练套路

网络结构 代码 # CIFAR 10完整的模型训练套路&#xff1a; import torch.optim import torchvision from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterfrom model import *# 1. 准备数据集 train_data torch…

TensorFlow2.x 精选笔记(2)自动求导与概率

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

Premiere企业发展历程公司历史回顾视频制作pr时间线模板

企业发展历程公司历史回顾视频制作PR时间线模板mogrt。 项目特点&#xff1a;色彩控件&#xff0c;适用于任何字体&#xff0c;包含视频帮助&#xff0c;适用于Premiere Pro 2021及以上版本。 更多PR资源下载&#xff1a;https://prmuban.com/37916.html

手机和windows的便签怎么共享账号使用

在忙碌的生活中&#xff0c;我经常需要在手机和电脑之间同步记事信息。可是&#xff0c;每次当我在手机上记下一些重要事项后&#xff0c;想要在电脑上查看或继续编辑时&#xff0c;总是遇到各种麻烦。因为手机和电脑上的便签软件各不相同&#xff0c;无法实现账号共享和内容同…

用 React 实现搜索 GitHub 用户功能

用 React 实现搜索 GitHub 用户功能 在本篇博客中&#xff0c;我们将介绍如何在 React 应用中搜索 GitHub 用户并显示他们的信息。 创建 React 应用 首先&#xff0c;我们使用 Create React App 创建一个新的 React 应用。Create React App 是一个快速搭建 React 项目的工具…

好用的IP反查接口

IP-API.com - Geolocation API - Documentation - JSON 自定义返回参数调用&#xff08;1&#xff09;&#xff1a; http://ip-api.com/json/24.48.0.1?fieldsstatus,message,country,countryCode,region,regionName,cityhttp://ip-api.com/json/24.48.0.1?fieldscountry,co…

用C#开发Excel插件的强大开源工具

推荐一个开源项目&#xff0c;方便我们使用C#为Excel开发插件。 01 项目简介 Excel-DNA是一个.Net开源项目&#xff0c;为开发者提供了一种便利的方法&#xff0c;可以将.Net代码与Excel集成&#xff0c;能够轻松的为Excel创建自定义函数、图表、表单等&#xff0c;一方面不仅…

IT廉连看——Uniapp——页面样式与布局

IT廉连看——Uniapp——页面样式与布局 目标&#xff1a; 了解样式与布局的规范 熟记px和rpx的区别 全局样式与index样式的区别 一、查看uniapp框架简介——尺寸单位 px尺寸单位的使用是贯穿始终的。 [IT廉连看] 二、尺寸单位——实操效果 1、打开Hbuilder X并进入in…

组态王连接施耐德M580PLC

组态王连接施耐德M580 网络架构 网线连接PLC和装组态王软件的PC组态设置帮助 可先查看帮助&#xff1a;菜单栏点击【帮助】->【驱动帮助】&#xff0c;在弹出窗口中PLC系列选择莫迪康PLC的“modbusRtu\ASSCII\TCP”查看组态配置流程&#xff1a; 相关说明&#xff1a; 1、…