MATLAB 高斯低通滤波器实现 - 图像平滑和边缘处理
以下是使用 MATLAB 实现高斯低通滤波器的代码:
% 读取图像
img = imread('lena.png');
% 转换为灰度图像
img = rgb2gray(img);
% 定义高斯滤波器参数
size = 7;
sigma = 3;
% 生成高斯滤波器
[x, y] = meshgrid(-(size-1)/2:(size-1)/2, -(size-1)/2:(size-1)/2);
h = exp(-(x.^2 + y.^2) / (2*sigma^2));
h = h / sum(h(:));
% 对图像进行滤波
img_filtered = imfilter(img, h);
% 显示原始图像和滤波后的图像
subplot(1, 2, 1);
imshow(img);
title('原始图像');
subplot(1, 2, 2);
imshow(img_filtered);
title('滤波后的图像');
在上述代码中,首先读取了一张图像,然后使用 rgb2gray 函数将其转换为灰度图像。接着定义了高斯滤波器的参数,包括滤波器大小和偏差。使用 meshgrid 函数生成了高斯滤波器的权重矩阵,然后将其归一化。最后使用 imfilter 函数对图像进行滤波操作,得到滤波后的图像。最后使用 subplot 和 imshow 函数将原始图像和滤波后的图像显示在同一窗口中。
原文地址: https://www.cveoy.top/t/topic/mYtE 著作权归作者所有。请勿转载和采集!