我试图了解 matlab 中非锐化滤波器背后的逻辑。如果我输入:
image = imread('nameoffile');
filter = fspecial('unsharp', 0.5);
resultImage = imfilter(image, filter);
结果图像比图像更清晰。我打开 fspecial.m 文件,看到 unsharp 过滤器被创建为:
h = [0 0 0;0 1 0;0 0 0] - fspecial('laplacian',alpha);
如果我用这个矩阵过滤图像:
[0 0 0;
0 1 0;
0 0 0;]
结果图像与原始图像相同。我知道拉普拉斯滤波器可以检测到锐利的边缘。所以,如果我们从图像中减去锐利的边缘,我们必须得到模糊的图像,我想。但是,如果我们用 h 矩阵(非锐化滤波器)过滤图像,我们会得到更清晰的图像。我不明白其中的逻辑。