各种频率低通滤波器(巴特沃斯、高斯、理想)对egg.jpg图像的增强的MATLAB完整程序
时间: 2024-12-16 18:21:56 浏览: 13
在MATLAB中,处理图像并应用低通滤波器(如巴特沃斯、高斯和理想滤波器)通常涉及到信号处理库函数和图像处理工具箱。以下是一个简化的示例程序,用于显示如何使用这些滤波器对"egg.jpg"图像进行低频增强:
```matlab
% 加载图片
img = imread('egg.jpg');
% 高斯滤波器
fspecial_gauss = fspecial('gaussian', [50 50], 10); % 这里的50和10是半径和标准差,可以根据需要调整
filtered_gauss = imfilter(img, fspecial_gauss);
% 巴特沃思滤波器
cutoff_freq = 0.2; % 设置截止频率
[b, a] = butter(4, cutoff_freq, 'low'); % 4阶巴特沃斯滤波器设计
filtered_butterworth = filter(b, a, img);
% 理想滤波器(理想低通只保留直流分量)
filtered_ideal = conv(img, ones(1, size(img, 2)) / size(img, 2)); % 除以宽度得到单位冲激响应
% 展示原图和经过滤波后的结果
subplot(2, 2, 1), imshow(img), title('Original Image');
subplot(2, 2, 2), imshow(filtered_gauss), title('Gaussian Filtered');
subplot(2, 2, 3), imshow(filtered_butterworth), title('Butterworth Filtered');
subplot(2, 2, 4), imshow(filtered_ideal), title('Ideal Low Pass Filtered');
% 保存结果
imwrite(filtered_gauss, 'filtered_gauss.jpg');
imwrite(filtered_butterworth, 'filtered_butterworth.jpg');
imwrite(filtered_ideal, 'filtered_ideal.jpg');
```
这个程序首先加载图像,然后分别应用高斯滤波器、巴特沃斯滤波器以及理想低通滤波器。最后将原始图像和滤波后的结果展示,并保存成新的图片文件。
请注意,实际使用时可能需要根据你的具体需求和图像特征调整滤波器的参数。此外,此代码没有包含任何图像预处理步骤(如灰度化或色彩空间转换),在实际应用中可能需要根据图像特性进行相应调整。
阅读全文