📜  使用内置的Matlab函数增加噪声

📅  最后修改于: 2021-04-16 09:11:52             🧑  作者: Mango

图像中的噪点:数字图像容易出现各种类型的噪点,从而使图像质量变差。图像噪声是捕获图像中亮度或颜色信息的随机变化。噪声基本上是由外部源(如相机)引起的图像信号降级。包含乘法噪声的图像具有以下特征:噪点越亮。但大多数情况下是加性的。根据创建图像的方式,有几种将噪声引入图像的方法。例如:

  • 如果从胶片上拍摄的照片扫描图像,则胶片颗粒可能是噪音源。噪声也可能是胶片损坏的结果,或者是由扫描仪的波动本身引起的。
  • 如果直接以数字格式获取图像,则用于收集数据的机制(例如CCD检测器)会引入噪声。
  • 数字图像数据的电子传输也会引入噪声。

为了模拟上面列出的某些问题的影响,工具箱在MATLAB中提供了内置的杂音功能,您可以使用该函数为图像添加各种类型的噪点。

MATLAB内置函数可以引入的各种噪声是:

  • 椒盐噪声:椒盐噪声是指导致图像质量下降的各种过程。在“盐和胡椒”噪声中,只有几个像素有噪点,但它们却非常嘈杂。效果类似于在图像上撒上白色和黑色的点。
    X = imnoise(Image, 'salt & pepper', percentage_distortion)

    上面的内置函数将“盐和胡椒”噪声添加到名为Image的图像中,其中percent_distortion是噪声密度。 percent_distortion的默认值为0.05。

  • 高斯噪声:高斯噪声是一种统计噪声,其概率密度函数等于正态分布,也称为高斯分布。它也被称为电子噪声,因为它会在放大器或检测器中产生。
    X = imnoise(Image, 'gaussian', percentage_distortion)
  • 斑点噪声:斑点是图像中固有存在的一种噪声,会降低其质量。可以通过将随机像素值与图像的不同像素相乘来生成斑点噪声。
    X = imnoise(Image, 'speckle', percentage_distortion)

以下是用于在图像中添加噪点的Matlab代码:

% For adding various kind of noise
clear;
I = rgb2gray(imread("flowers.jpg"));
subplot(2, 2, 1),
imshow(I);
title("Original image");
  
% adding salt and pepper noise
s = imnoise(I, "salt & pepper", 0.20);
subplot(2, 2, 2),
imshow(s);
title("Salt and Pepper noise");
  
% adding Gaussian noise
g = imnoise(I, "gaussian", 0.20);
subplot(2, 2, 3),
imshow(g);
title("Gaussian noise");
  
% adding Speckle noise
sp = imnoise(I, "speckle", 0.20);
subplot(2, 2, 4),
imshow(sp);
title("Speckle noise");

输出 :