有关巴特沃斯高通滤波器(BHPF)

# 接巴特沃斯低通滤波器,记录一下巴特沃斯高通滤波器

巴特沃斯高通滤波器与巴特沃斯低通滤波器类似,但是其目标是增强高频信号。与巴特沃斯低通滤波器一样,巴特沃斯高通滤波器也有一个阶数参数 n,用来控制滤波器的“软硬”程度。

在 MATLAB 中,我们同样计算每个像素到图像中心的距离,然后根据巴特沃斯滤波器公式:1 / (1 + (距离 / 截止频率)^(2*n)),计算滤波器的值。

注意这个转移函数的分母里面是1+[ D0 / D(u,v) ]^2n

巴特沃斯低通滤波器的转移函数分母里面是1+[ D(u,v) / D0 ]^2n

那么关于高斯高通滤波器:

高斯高通滤波器的设计基于高斯分布函数,类似于高斯低通滤波器。不过高斯高通滤波器的目标是增强高频信号,从而实现图像的锐化。

在 MATLAB 中,我们首先创建一个二维的高斯分布函数,其中心为图像中心,方差与截止频率相关。然后将该函数应用于频域图像,即可得到高斯高通滤波器。

MATLAB 语法中,二维数组的创建使用 ones() 函数或 zeros() 函数,通过遍历每个像素点计算距离并进行滤波器值的设定。对于循环操作,MATLAB 提供了 for 循环结构,用于迭代遍历数组中的每个元素。

最后贴一下本次作业这部分的matlab代码吧

% 作者: 你猜不到我是谁
% 编辑时间: 2024-04-10
% 描述:完成第三次实验第三部分锐化频域滤波:
% (1)设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器,截止频率自选。
% (2)读出图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和指数型高通滤波器对其进行滤波(截止频率分别为 15,20,80),再做反变换得到高通滤波后的空域图像。
%   观察不同的截止频率下采用不同高通滤波 器得到的图像与原图像的区别。

clc;close all;clear;

im = imread('room.png');
im = im2double(im); % 转换为 double 类型

% 设置截止频率
cutoff_frequency = 15; % 自选

% 创建理想高通滤波器
[M, N] = size(im);
ideal_highpass_filter = ones(M, N);
center_x = floor(M/2) + 1;
center_y = floor(N/2) + 1;
for i = 1:M
    for j = 1:N
        distance = sqrt((i - center_x)^2 + (j - center_y)^2);
        if distance <= cutoff_frequency
            ideal_highpass_filter(i, j) = 0;
        end
    end
end

% 创建巴特沃斯高通滤波器
n = 2; % 巴特沃斯滤波器阶数
butterworth_highpass_filter = 1 ./ (1 + (cutoff_frequency ./ distance).^(2*n));

% 创建高斯高通滤波器
[X, Y] = meshgrid(1:N, 1:M);
gaussian_highpass_filter = 1 - exp(-((X-center_x).^2 + (Y-center_y).^2) / (2*(cutoff_frequency)^2));

% 读入图像
% im = imread('room.png'); % 替换为你的图像文件名
% im = im2double(im); % 转换为 double 类型
[M, N] = size(im);

% 进行傅里叶变换
im_fft = fftshift(fft2(im));

% 应用滤波器
filtered_im_fft_ideal = im_fft .* ideal_highpass_filter;
filtered_im_fft_butterworth = im_fft .* butterworth_highpass_filter;
filtered_im_fft_gaussian = im_fft .* gaussian_highpass_filter;

% 进行逆傅里叶变换
filtered_im_ideal = real(ifft2(ifftshift(filtered_im_fft_ideal)));
filtered_im_butterworth = real(ifft2(ifftshift(filtered_im_fft_butterworth)));
filtered_im_gaussian = real(ifft2(ifftshift(filtered_im_fft_gaussian)));

% 显示滤波后的图像
figure;
subplot(2, 2, 1), imshow(im), title('原始图像');
subplot(2, 2, 2), imshow(filtered_im_ideal), title('理想高通滤波器');
subplot(2, 2, 3), imshow(filtered_im_butterworth), title('巴特沃斯高通滤波器');
subplot(2, 2, 4), imshow(filtered_im_gaussian), title('高斯高通滤波器');

参考:

与open ai的GPT3.5的对话

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值