【发布时间】:2023-03-08 18:00:01
【问题描述】:
我正在尝试对这张图片应用高通滤镜。
A = 'url';
B = imread(A, 'jpg');
figure(1), imshow(B);
C = rgb2gray(B);
figure(2), imshow(C);
e = fspecial('gaussian', [3,3], 0.5);
n = imfilter(C,e);
figure(3), imshow(n)
p = [1 1 1;
1 1 1;
1 1 1]/9;
figure(4), freqz2(p)
D = imfilter(C,p);
figure(5), imshow(D)
K = medfilt2(D,[3 3]);
figure(6), imshow(K)
我在这里应用了一个低通滤波器。如何应用高通滤波器?
【问题讨论】:
-
3x3 过滤器永远不是高斯过滤器。我不知道为什么 MATLAB 允许这样做。 0.5 的 sigma 太小,无法正确采样高斯核。您希望将 sigma 参数保持为至少 0.8,但最好保持为 1,并将过滤器大小保持为 6*sigma+1(因此至少为 7x7)。如果你做任何其他事情,你还不如使用三角滤波器,因为你不会拥有高斯核的任何优点。
-
重新打开:这个问题是关于2D(图像)过滤,而另一个是关于1D(信号)过滤。不能简单地将一维方法应用于二维数据。
-
@luis-mendo 我认为你应该考虑重新提出这个问题,因为它是关于 2D 而副本是关于 1D。
-
@mad-physicist 请考虑重新打开,因为这大约是 2D,骗子大约是 1D。
-
@beaker 请考虑重新打开,因为这大约是 2D,dupe 大约是 1D。
标签: matlab image-processing highpass-filter