您现在的位置是:首页 >技术教程 >MATLAB中图像高斯噪声添加与滤波处理网站首页技术教程

MATLAB中图像高斯噪声添加与滤波处理

阿斯弗的撒旦 2025-02-12 12:01:02
简介MATLAB中图像高斯噪声添加与滤波处理
clear all; close all;
I = imread('cameraman.tif');
I = im2double(I);
I = imnoise(I, 'gaussian', 0.05);
PSF = fspecial('average', 3);
J = imfilter(I, PSF);
K = exp(imfilter(log(I), PSF));
figure;
subplot(131);
imshow(I);
title('Original Image');
subplot(132);
imshow(J);
title('Image with Gaussian Noise and Blurred');
subplot(133);
imshow(K);
title('Image with Logarithmic Transformation and Blurred');

解释:

  • clear all; close all;:清空工作空间中的所有变量并关闭所有图形窗口。

  • I = imread('cameraman.tif');:读取名为cameraman.tif的图像,并赋值给I

  • I = im2double(I);:将图像I的数据类型转换为双精度浮点数,以便进行后续处理。

  • I = imnoise(I, 'gaussian', 0.05);:在图像I上添加高斯噪声,噪声的方差设置为0.05。

  • PSF = fspecial('average', 3);:创建一个平均滤波器的点扩散函数(PSF),大小为3x3,用于模糊处理。

  • J = imfilter(I, PSF);:使用平均滤波器对添加了高斯噪声的图像I进行滤波,得到模糊后的图像J

  • K = exp(imfilter(log(I), PSF));:首先对图像I取对数,然后使用平均滤波器对对数图像进行滤波,最后对滤波结果取指数,得到图像K

  • figure;:创建一个新的图形窗口。

  • subplot(131); imshow(I);:在第一个子图(1,3,1)中显示原始图像I

  • subplot(132); imshow(J);:在第二个子图(1,3,2)中显示添加了高斯噪声并模糊后的图像J

  • subplot(133); imshow(K);:在第三个子图(1,3,3)中显示对数变换后模糊的图像K

拓展:

  1. 保存图像:可以将处理后的图像JK保存为文件。
% 保存处理后的图像
imwrite(uint8(J), 'cameraman_with_gaussian_noise_blurred.png');
imwrite(uint8(K), 'cameraman_with_log_transform_blurred.png');
  1. 分析图像特性:可以进一步分析处理后的图像特性,比如通过计算图像的均值和方差。

  2. 修改噪声参数:可以尝试使用不同的噪声参数,来观察对图像的影响。

  3. 应用不同的滤波器:可以尝试使用不同的滤波器,如高斯滤波器、中值滤波器等,来观察对图像的影响。

  4. 比较不同处理方法的影响:可以比较不同图像处理方法对图像质量的影响,以评估不同方法的效果。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。