clear all; close all;
I = uint8(100 * ones(256, 256));
J = imnoise(I, 'gaussian', 0, 0.01);
K = imnoise(I, 'gaussian', 0, 0.03);
figure;
subplot(121);
imshow(J);
title('Image with Gaussian Noise (0.01 Variance)');
subplot(122);
imhist(J);
title('Histogram of Image with Gaussian Noise (0.01 Variance)');
figure;
subplot(121);
imshow(K);
title('Image with Gaussian Noise (0.03 Variance)');
subplot(122);
imhist(K);
title('Histogram of Image with Gaussian Noise (0.03 Variance)');
解释:
-
clear all; close all;
:清空工作空间中的所有变量并关闭所有图形窗口。 -
I = uint8(100 * ones(256, 256));
:创建一个256x256的全白色图像I
,像素值为100。 -
J = imnoise(I, 'gaussian', 0, 0.01);
:在图像I
上添加高斯噪声,均值为0,方差为0.01。 -
K = imnoise(I, 'gaussian', 0, 0.03);
:在图像I
上添加高斯噪声,均值为0,方差为0.03。 -
figure;
:创建一个新的图形窗口。 -
subplot(121); imshow(J);
:在第一个子图(1,2,1)中显示添加了高斯噪声(方差0.01)的图像J
。 -
subplot(122); imhist(J);
:在第一个子图的旁边显示图像J
的直方图。 -
第二个
figure
和subplot
组合用于显示第二个图像K
和它的直方图。 -
subplot(121); imshow(K);
:在第二个子图(1,2,1)中显示添加了高斯噪声(方差0.03)的图像K
。 -
subplot(122); imhist(K);
:在第二个子图的旁边显示图像K
的直方图。
拓展:
- 保存图像和直方图:可以将添加了噪声的图像和它们的直方图保存为文件。
% 保存图像和直方图
imwrite(J, 'image_with_noise_01.png');
imwrite(K, 'image_with_noise_03.png');
figure;
subplot(121);
imshow(J);
title('Image with Gaussian Noise (0.01 Variance)');
subplot(122);
imhist(J);
title('Histogram of Image with Gaussian Noise (0.01 Variance)');
saveas(gcf, 'histogram_with_noise_01.png');
figure;
subplot(121);
imshow(K);
title('Image with Gaussian Noise (0.03 Variance)');
subplot(122);
imhist(K);
title('Histogram of Image with Gaussian Noise (0.03 Variance)');
saveas(gcf, 'histogram_with_noise_03.png');
-
分析噪声特性:可以进一步分析噪声的特性,比如通过计算噪声的标准差和均值来评估噪声的强度和分布。
-
应用噪声去除技术:可以尝试使用不同的噪声去除技术,如维纳滤波、中值滤波等,来减少图像中的噪声。
-
比较不同噪声水平的影响:可以比较不同噪声水平对图像质量的影响,以评估噪声对图像处理任务的影响。