我的问题是如何在 MATLAB 中以 8 为中心应用 5×5 拉普拉斯滤波器?
我尝试使用此代码但它不起作用
kAvg = fspecial('average',[5 5]);
kLap = fspecial('laplacian');
最佳答案
根据 documentation ,您可以使用 imfilter
来应用过滤器:
I = imread('cameraman.tif');
kLap = fspecial('laplacian');
filtered = imfilter(I,kLap,'replicate');
imshow(filtered); title('Filtered Image');
编辑:我刚刚意识到你在问什么 for :
I = imread('cameraman.tif');
% simple high pass filter
kLap = [-1, -1, -1;
-1, 8, -1;
-1, -1, -1];
filtered_3x3 = imfilter(I,kLap,'replicate');
imshow(filtered_3x3); title('Filtered Image (3x3)');
pause();
% another simple high pass filter
kLap = [-1 -3 -4 -3 -1;
-3 0 6 0 -3;
-4 6 20 6 -4;
-3 0 6 0 -3;
-1 -3 -4 -3 -1];
filtered_5x5 = imfilter(I,kLap,'replicate');
imshow( filtered_5x5 ); title('Filtered Image (5x5)');
关于matlab - 如何在 MATLAB 中应用过滤器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9583486/