1. 高斯高通滤波器
与高斯低通滤波器(用于平滑图像、模糊图像)相反,高斯高通滤波器(GHPF)通过抑制低频成分来实现图像锐化。高斯高通滤波器的作用是增强图像中的高频成分,从而突出图像的边缘和细节。
高斯高通滤波器的传递函数可以由一个低通滤波器的传递函数转换得到。通常,我们可以用以下公式来表示高斯高通滤波器的传递函数:
其中,是截止频率,控制着滤波器的截止范围。
值越大,滤波器对低频的抑制变得较弱,更多的频率成分可以通过,滤波器有较弱的高通滤波效果。
值越小,低频成分会被大幅抑制,高频分量更容易通过,滤波器有较强的高通滤波效果。
高斯高通滤波器具有以下特性:
增强高频成分: 高斯高通滤波器通过抑制低频成分,突出图像中的边缘和细节,从而达到锐化图像的效果。
平滑过渡: 相比于其他高通滤波器,高斯高通滤波器的频率响应曲线更加平滑,在抑制低频成分的同时,不会引入过多的噪声。
基于高斯函数: 高斯高通滤波器的设计基于高斯函数,具有良好的对称性和旋转不变性。
2. 巴特沃斯高通滤波器
巴特沃斯高通滤波器(BHPF)最显著的特点是通带内的频率响应曲线最大限度平坦,即在通带范围内,信号的幅度几乎不受影响。其设计目标是在频率域中尽量保持传递函数的平滑性,没有急剧的增益变化。
巴特沃斯高通滤波器的主要特性:
通带平坦: 在通带范围内,频率响应曲线近似水平,没有纹波,保证了信号的幅度失真最小。
阻带衰减: 在阻带范围内,频率响应曲线逐渐下降,高频信号被有效衰减。
过渡带平滑: 从通带过渡到阻带的过程中,幅度响应变化平滑,没有尖锐的峰值或谷值,这有助于减少信号的失真。
相位线性: 巴特沃斯滤波器的相位响应接近线性,这意味着不同频率的信号通过滤波器后,相位延迟的差异较小,从而减少了信号的失真。
对于一个 n 阶的巴特沃斯高通滤波器,其频域传递函数:
在截止频率以下的频率分量,传递函数的值趋近于 0 ,即低频信号被衰减;
在截止频率以上的频率分量,传递函数的值趋近于 1,高频信号能够无衰减地通过。
下面的例子,展示了分别展示了高斯高通滤波器和巴特沃斯高通滤波器的实现代码
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <random>
using namespace std;
using namespace cv;
// 巴特沃斯高通滤波核函数
cv::Mat butterworth_high_kernel(cv::Mat &scr, float sigma, int n)
{
cv::Mat butterworth_high_pass(scr.size(), CV_32FC1);
float D0 = sigma;
for (int i = 0; i < scr.rows; i++) {
&nb