图像处理 高斯噪声_rgb2gray处理过后的图像加入了高斯噪声 - CSDN
  • 图像噪声使图像在获取或是传输过程中收到随机信号干扰,妨碍人们对图像理解及分析处理的信号。很多时候将图像噪声看做多维随机过程,因而描述噪声的方法完全可以借用随机过程的描述,也就是使用随机过程的描述,也...

    图像噪声使图像在获取或是传输过程中收到随机信号干扰,妨碍人们对图像理解及分析处理的信号。很多时候将图像噪声看做多维随机过程,因而描述噪声的方法完全可以借用随机过程的描述,也就是使用随机过程的描述,也就是用它的高绿分布函数和概率密度分布函数。图像噪声的产生来自图像获取中的环境条件和传感元器件自身的质量,图像在传输过程中产生图像噪声的主要因素是所用的传输信道收到了噪声的污染。

    下面简单介绍两种图像噪声,即椒盐噪声和高斯噪声。

    1.椒盐噪声

    椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。盐和胡椒噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。

    图像模拟添加椒盐噪声是通过随机获取像素点并设置为高亮度点和低灰度点来实现的

    图像添加椒盐噪声的程序如下:

    //利用程序给原图像增加椒盐噪声
    //图象模拟添加椒盐噪声是通过随机获取像素点斌那个设置为高亮度点来实现的
     

    #include <cstdlib>
    #include <iostream>
    #include <opencv2\core\core.hpp>
    #include <opencv2\highgui\highgui.hpp>
    #include <opencv2\imgproc\imgproc.hpp>
     
    using namespace cv;
    using namespace std;
     
    Mat addSaltNoise(const Mat srcImage, int n);
     
     
    int main()
    {
        Mat srcImage = imread("2345.jpg");
        if (!srcImage.data)
        {
            cout << "读入图像有误!" << endl;
            system("pause");
            return -1;
        }
        imshow("原图像", srcImage);
        Mat dstImage = addSaltNoise(srcImage, 3000);
        imshow("添加椒盐噪声的图像", dstImage);
        //存储图像
        imwrite("salt_pepper_Image.jpg", dstImage);
        waitKey();
        return 0;
    }
     
    Mat addSaltNoise(const Mat srcImage, int n)
    {
        Mat dstImage = srcImage.clone();
        for (int k = 0; k < n; k++)
        {
            //随机取值行列
            int i = rand() % dstImage.rows;
            int j = rand() % dstImage.cols;
            //图像通道判定
            if (dstImage.channels() == 1)
            {
                dstImage.at<uchar>(i, j) = 255;        //盐噪声
            }
            else
            {
                dstImage.at<Vec3b>(i, j)[0] = 255;
                dstImage.at<Vec3b>(i, j)[1] = 255;
                dstImage.at<Vec3b>(i, j)[2] = 255;
            }
        }
        for (int k = 0; k < n; k++)
        {
            //随机取值行列
            int i = rand() % dstImage.rows;
            int j = rand() % dstImage.cols;
            //图像通道判定
            if (dstImage.channels() == 1)
            {
                dstImage.at<uchar>(i, j) = 0;        //椒噪声
            }
            else
            {
                dstImage.at<Vec3b>(i, j)[0] = 0;
                dstImage.at<Vec3b>(i, j)[1] = 0;
                dstImage.at<Vec3b>(i, j)[2] = 0;
            }
        }
        return dstImage;
    }

    执行程序后,输出的效果如下:


    2.高斯噪声

    高斯噪声是指高绿密度函数服从高斯分布的一类噪声。特别的,如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度有事均匀分布的,则称这个噪声为高斯白噪声。高斯白噪声二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。高斯噪声包括热噪声和三里噪声。高斯噪声万有由它的事变平均值和两瞬时的协方差函数来确定,若噪声是平稳的,则平均值与时间无关,而协方差函数则变成仅和所考虑的两瞬时之差有关的相关函数,在意义上它等同于功率谱密度。高斯早生可以用大量独立的脉冲产生,从而在任何有限时间间隔内,这些脉冲中的每一个买充值与所有脉冲值得总和相比都可忽略不计。

    File:Normal approximation to binomial.svg

    根据Box-Muller变换原理,建设随机变量U1、U2来自独立的处于(0,1)之间的均匀分布,则经过下面两个式子产生的随机变量Z0,Z1服从标准高斯分布。

    上式中Z0,Z1满足正态分布,其中均值为0,方差为1,变量U1和U2可以修改为下式:

    给图像添加高斯噪声的程序如下:

    //给图像添加高斯噪声
    #include <cmath>
    #include <limits>
    #include <cstdlib>
    #include <iostream>
    #include <opencv2\core\core.hpp>
    #include <opencv2\highgui\highgui.hpp>
     
    using namespace cv;
    using namespace std;
     
    double generateGaussianNoise(double m, double sigma);
    Mat addGaussianNoise(Mat &srcImag);
     
    int main()
    {
        Mat srcImage = imread("2345.jpg");
        if (!srcImage.data)
        {
            cout << "读入图片错误!" << endl;
            system("pause");
            return -1;
        }
        imshow("原图像", srcImage);
        Mat dstImage = addGaussianNoise(srcImage);
        imshow("添加高斯噪声后的图像", dstImage);
        waitKey();
        return 0;
    }
     
    //生成高斯噪声
    double generateGaussianNoise(double mu, double sigma)
    {
        //定义小值
        const double epsilon = numeric_limits<double>::min();
        static double z0, z1;
        static bool flag = false;
        flag = !flag;
        //flag为假构造高斯随机变量X
        if (!flag)
            return z1 * sigma + mu;
        double u1, u2;
        //构造随机变量
        do
        {
            u1 = rand() * (1.0 / RAND_MAX);
            u2 = rand() * (1.0 / RAND_MAX);
        } while (u1 <= epsilon);
        //flag为真构造高斯随机变量
        z0 = sqrt(-2.0*log(u1))*cos(2 * CV_PI*u2);
        z1 = sqrt(-2.0*log(u1))*sin(2 * CV_PI*u2);
        return z0*sigma + mu;
    }
     
    //为图像添加高斯噪声
    Mat addGaussianNoise(Mat &srcImag)
    {
        Mat dstImage = srcImag.clone();
        int channels = dstImage.channels();
        int rowsNumber = dstImage.rows;
        int colsNumber = dstImage.cols*channels;
        //判断图像的连续性
        if (dstImage.isContinuous())
        {
            colsNumber *= rowsNumber;
            rowsNumber = 1;
        }
        for (int i = 0; i < rowsNumber; i++)
        {
            for (int j = 0; j < colsNumber; j++)
            {
                //添加高斯噪声
                int val = dstImage.ptr<uchar>(i)[j] +
                    generateGaussianNoise(2, 0.8) * 32;
                if (val < 0)
                    val = 0;
                if (val>255)
                    val = 255;
                dstImage.ptr<uchar>(i)[j] = (uchar)val;
            }
        }
        return dstImage;
    }

    程序执行后的效果图如下:

    展开全文
  • 高斯噪声 是随机噪声, 服从高斯分布 主要特点表现为:麻点 椒盐噪声 胡椒噪声、盐噪声 主要特点表现为:黑白点 噪声的描述 均方误差 MSE : MSE越大,失真率越大 峰值信噪比 PSNR: PSNR越大,...

    噪声分类:

    • 高斯噪声
    1. 是随机噪声, 服从高斯分布
    2. 主要特点表现为:麻点
    • 椒盐噪声
    1. 胡椒噪声、盐噪声
    2. 主要特点表现为:黑白点

    噪声的描述

    1. 均方误差 MSE : MSE越大,失真率越大
    2. 峰值信噪比 PSNR: PSNR越大,失真度越小

    图像平滑(去噪)

    1. 平滑的目的: 在表刘源是图像基本特征的前提下, 消除或衰减噪声的影响, 提高视觉效果

    2. 基础知识:
      (1): 滤波: 使用空间模版(滤波器)处理图像的过程
      (2): 模版与模版运算: 模版和邻域大小相同

    3. 常用图像平滑方法(空间平滑滤波):

    • 均值滤波 (邻域平均法)——线性空间滤波
      MATLAB实现均值滤波,见我的博客:
      https://blog.csdn.net/qq_37486501/article/details/80274928
      (1): 基本思想: 某像素点灰度值=邻域中所有像素灰度值平均值 来代替
      (2): 优点: 在一定程度上可衰减噪声影响——拉小灰度差异
      (3): 缺点: 图像的边缘轮廓细节变模糊——边缘轮廓也做均值,导致的变模糊

    • 中值滤波(中位数)——非线性滤波
      MATLAB实现中值滤波,见我的博客:
      https://blog.csdn.net/qq_37486501/article/details/80274960
      (1): 基本思想: 某像素的灰度值=窗口内所有像素的灰度中值 来代替
      (2):窗口:
      有不同形状(
      一维:线状
      二维:十字、正方形、菱形、圆形)
      有不同大小(窗口大小中必含奇数元素, 为了保证中心像素值)
      (3): 优点:
      在去噪同时,较好的保持边缘轮廓细节
      适合处理椒盐噪声(因为: 不是去噪声点, 而使改变其灰度值)

    • 小波去噪
      将信号通过小波变换(采用Mallat算法)后,信号产生的小波系数含有信号的重要信息,将信号经小波分解后小波系数较大,噪声的小波系数较小,并且噪声的小波系数要小于信号的小波系数,通过选取一个合适的阀值,大于阀值的小波系数被认为是有信号产生的,应予以保留,小于阀值的则认为是噪声产生的,置为零从而达到去噪的目的。

    • 高斯滤波
      高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

    • 双边滤波器去噪
      双边滤波器(Bilateral filter)是一种可以保边去噪的滤波器。可以滤除图像数据中的噪声,且还会保留住图像的边缘、纹理等(因噪声是高频信号,边缘、纹理也是高频信息,高斯滤波会在滤除噪声的同时使得边缘模糊)。是使用一个卷积核(模板矩阵),叠加到待处理像素点上,使用对应邻域像素点的加权求和来作为新的输出像素点的值一种方法,简单来说,双边滤波和高斯滤波一样,不同只在于模板矩阵的不同。

    展开全文
  • 针对超分辨率图像处理对图像加入不同类型的高斯噪声matlab代码
  • 图像处理(12)--图像各种噪声及消除方法

    万次阅读 多人点赞 2019-07-25 21:58:21
    噪声分类及其消除方法3.1 高斯噪声及其消除方式3.1.1 如何确定一种噪声是高斯噪声3.1.2 高斯滤波消除高斯噪声3.1.3 高斯函数的重要性质3.2 瑞利噪声及其消除方式3.3 伽马(爱尔兰)噪声及其消除方式3.4 指数分布...


    图像处理系列笔记: https://blog.csdn.net/qq_33208851/article/details/95335809


    图像复原 即利用退化过程的先验知识,去恢复已被退化图像的本来面目。在图像的复原中,需要对噪声进行处理。

    1.什么是图像噪声

    图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。 图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”(图像噪声可以描述成不同的类型,其归类方法就是基于统计方法的)。因此将图像噪声看成是多维随机过程是合适的,因而描述噪声的方法完全可以借用随机过程的描述,即用其概率分布函数和概率密度分布函数。通俗的说就是噪声让图像不清楚。
    参考文章:https://baike.baidu.com/item/图像噪声/4116468?fr=aladdin

    2. 图像噪声来源

    1. 图像获取过程中
      图像传感器CCD和CMOS采集图像过程中受传感器材料属性、工作环境、电子元器件和电路结构等影响,会引入各种噪声。

    2. 图像信号传输过程中
      传输介质和记录设备等的不完善,数字图像在其传输记录过程中往往会受到多种噪声的污染。

    3. 噪声分类

    噪声按照不同的分类标准可以有不同的分类形式:

    • 基于产生原因:内部噪声,外部噪声。
    • 基于噪声与信号的关系
      加性嗓声和图像信号强度是不相关的,这类带有噪声的图像g可看成为理想无噪声图像f与噪声n之和:
      在这里插入图片描述
      乘性嗓声和图像信号是相关的,往往随图像信号的变化而变化,载送每一个象素信息的载体的变化而产生的噪声受信息本身调制。在某些情况下,如信号变化很小,噪声也不大。为了分析处理方便,常常将乘性噪声近似认为是加性噪声,而且总是假定信号和噪声是互相统计独立。
      在这里插入图片描述
    • 按照基于统计后的概率密度函数:是比较重要的,主要因为引入数学模型,这就有助于运用数学手段去除噪声。在不同场景下噪声的施加方式都不同,由于在外界的某种条件下,噪声下图像-原图像(没有噪声时)的概率密度函数(统计结果)服从某种分布函数,那么就把它归类为相应的噪声。下面将具体说明基于统计后的概率密度函数的噪声分类及其消除方式。

    3.1 高斯噪声及其消除方式

    在空间域和频域中,由于高斯噪声在数学上的易处理性(高斯函数,高斯函数的傅里叶变换仍然是高斯函数,见相关博文),这种噪声(也称为正态噪声)模型经常被用在实践中,事实上,这种易处理性非常方便。
    高斯函数:
    在这里插入图片描述
    在这里插入图片描述

    3.1.1 如何确定一种噪声是高斯噪声

    样本图:
    在这里插入图片描述
    噪声下的样本图:
    在这里插入图片描述
    噪声的直方图(统计直方图):
    在这里插入图片描述
    可以看到,噪声的直方图中图形像高斯正态函数的分布。
    说明:噪声对原图像的影响是随机的,直方图呈现的分布形式是基于统计的结果直方图表示了(归一化后)灰度值的概率密度分布,因此可以使用直方图来表示灰度值的概率密度。
    统计直方图:
    在这里插入图片描述
    在这里插入图片描述

    3.1.2 高斯滤波消除高斯噪声

    关于高斯滤波(模糊)的方法和过程在前面的文章中写过:

    图像处理(7)–高斯模糊原理

    3.1.3 高斯函数的重要性质

    高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:

    1. 二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向.
    2. 高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性 质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.
    3. 高斯函数的付立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所 污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号 所污染,同时保留了大部分所需信号.
    4. 高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过 调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.
    5. 由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.

    3.2 瑞利噪声

    瑞利分布:
    在这里插入图片描述
    在这里插入图片描述
    均值和方差:
    在这里插入图片描述
    瑞利分布百度百科:https://baike.baidu.com/item/瑞利分布/10284554?fr=aladdin

    3.2.1 如何确定一种噪声是瑞利噪声

    样本图:
    在这里插入图片描述
    噪声下的样本图:
    在这里插入图片描述
    噪声的直方图(统计直方图):
    在这里插入图片描述

    3.3 伽马(爱尔兰)噪声

    伽马函数:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    或者:
    在这里插入图片描述
    在这里插入图片描述
    Γ函数详解:
    https://blog.csdn.net/lanchunhui/article/details/50535735
    伽马函数百度百科:https://baike.baidu.com/item/伽玛函数/3540177?fromtitle=伽马函数&fromid=11217190&fr=aladdin
    伽马噪声百度百科:https://baike.baidu.com/item/Erlang噪声/22026470?fr=aladdin
    伽马噪声直方图:
    在这里插入图片描述

    3.4 指数分布噪声

    概率密度函数:
    在这里插入图片描述
    在这里插入图片描述
    累计分布函数:
    在这里插入图片描述
    在这里插入图片描述
    期望值(均值):
    在这里插入图片描述
    方差:
    在这里插入图片描述
    相关博文:https://blog.csdn.net/ningyaliuhebei/article/details/46409941

    3.5 均匀分布噪声

    一个连续随机变量X在区间[a,b]上具有均匀分布,记作

    X∼Uniform(a,b)

    当它的概率密度函数满足:
    在这里插入图片描述
    在这里插入图片描述
    它的分布函数如下所示:
    在这里插入图片描述
    在这里插入图片描述
    相应的期望和方差:
    在这里插入图片描述
    在这里插入图片描述
    均匀分布百度百科:https://baike.baidu.com/item/均匀分布/954451?fr=aladdin

    3.6 脉冲(椒盐)噪声及其消除方式

    3.6.1 脉冲(椒盐)噪声

    椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。盐和胡椒噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。
    在这里插入图片描述
    在这里插入图片描述

    3.6.1 脉冲(椒盐)噪声的消除方式

    一般使用非线性滤波器处理椒盐噪声:

    • 异常值侦测
      异常侦测(Anomaly detection)有时称为异常值侦测(Outlier detection),如其名所隐含的,在给定的资料集合中,它将侦测在已有的规律中表现异常者。现今常用的方法以计算距离为基础的K-近邻算法或是机器学习中的支持向量机等。
    • 中值滤波器
      中值滤波器(Median filtering) 如其名所隐含的,它将一个像素的值用该像素邻域中强度值的中间值来取代(计算中间值的过程中,也会将该像素的原始值包含),中值滤波器在处理盐和胡椒噪声上能提供绝佳的噪声降低效能。
    • 伪中值滤波器
      为了改进中值滤波器的计算速率,伪中值滤波器(Pseudo-median filtering) 以近似的方法算出中间值。

    4. 图像去噪算法的分类

    • 空间域滤波
      空域滤波是在原图像上直接进行数据运算,对像素的灰度值进行处理。常见的空间域图像去噪算法有邻域平均法、中值滤波、低通滤波等。

    • 变换域滤波
      图像变换域去噪方法是对图像进行某种变换,将图像从空间域转换到变换域,再对变换域中的变换系数进行处理,再进行反变换将图像从变换域转换到空间域来达到去除图像嗓声的目的。将图像从空间域转换到变换域的变换方法很多,如傅立叶变换、沃尔什-哈达玛变换、余弦变换、K-L变换以及小波变换等。而傅立叶变换和小波变换则是常见的用于图像去噪的变换方法。

    • 偏微分方程
      偏微分方程是近年来兴起的一种图像处理方法,主要针对低层图像处理并取得了很好的效果。偏微分方程具有各向异性的特点,应用在图像去噪中,可以在去除噪声的同时,很好的保持边缘。偏微分方程的应用主要可以分为两类:一种是基本的迭代格式,通过随时间变化的更新,使得图像向所要得到的效果逐渐逼近,这种算法的代表为Perona和Malik的方程[27],以及对其改进后的后续工作。该方法在确定扩散系数时有很大的选择空间,在前向扩散的同时具有后向扩散的功能,所以,具有平滑图像和将边缘尖锐化的能力。偏微分方程在低噪声密度的图像处理中取得了较好的效果,但是在处理高噪声密度图像时去噪效果不好,而且处理时间明显高出许多。

    • 变分法
      另一种利用数学进行图像去噪方法是基于变分法的思想,确定图像的能量函数,通过对能量函数的最小化工作,使得图像达到平滑状态,现在得到广泛应用的全变分TV模型就是这一类。这类方法的关键是找到合适的能量方程,保证演化的稳定性,获得理想的结果。-形 态学噪声滤除器
      将开与闭结合可用来滤除噪声,首先对有噪声图像进行开运算,可选择结构要素矩阵比噪声尺寸大,因而开运算的结果是将背景噪声去除;再对前一步得到的图像进行闭运算,将图像上的噪声去掉。据此可知,此方法适用的图像类型是图像中的对象尺寸都比较大,且没有微小细节,对这类图像除噪效果会较好。
      参考博文:https://blog.csdn.net/Arcsinsin/article/details/12260373

    5. 图像去噪算法

    根据图像的特征建立起相应的概率密度函数。在对数字图像进行处理的过程中,一般需要以概率密度函数作为根本的依据来对噪声的统计特性进行表述,建立起对应的数据模型。

    5.1 基于空间域下的滤波器

    关于空间域下的滤波器在我的 图像处理(10)–空间滤波 一文中有详细的介绍。这个很重要。

    5.2 基于小波域的小波阈值去噪

    小波萎缩法是目前研究最为广泛的方法,小波萎缩法又分成如下两类:第1类是阈值萎缩,由于阈值萎缩主要基于如下事实,即比较大的小波系数一般都是以实际信号为主,而比较小的系数则很大程度是噪声。因此可通过设定合适的阈值,首先将小于闽值的系数置零,而保留大于闭值的小波系数;然后经过阈值函数映射得到估计系数;最后对估计系数进行逆变换,就可以实现去噪和重建;而另外一种萎缩方法则不同,它是通过判断系数被噪声污染的程度,并为这种程度引入各种度量方法(例如概率和隶属度等),进而确定萎缩的比例,所以这种萎缩方法又被称为比例萎缩。阈值萎缩方法中的两个基本要素是阈值和阈值函数。

    阈值的选择:
    阈值的确定在阈值萎缩中是最关键的。目前使用的阈值可以分成全局阈值和局部适应阈值两类。其中,全局阈值对各层所有的小波系数或同一层内的小波系数都是统一的;而局部适应阈值是根据当前系数周围的局部情况来确定阈值。目前提出的全局阈值主要有以下几种:

    (1),Donoho和Johastone统一阈值(简称DJ阈值):

    其中σ为噪声标准方差,N为信号的尺寸或长度。

    image

    (2),基于零均值正态分布的置信区间阈值:

    image

    (3),Bayes Shrink阈值和Map Shrink阈值。在小波系数服从广义高斯分布的假设下,Chang等人得出了阈值:

    image

    其中,(R为噪声标准方差,RB为广义高斯分布的标准方差值)。

    (4),最小最大化阈值:这是Donoho和John Stone在最小最大化意义下得出的阈值与上边的阈值不同,它是依赖于信号的,而且没有显式表达式,在求取时需要预先知道原信号。

    (5),理想阈值:理想阈值是在均方差准则下的最优阈值,同最大最小化阈值一样,也没有显式的表达式,并且这个阈值的计算通常也需先知道信号本身。

    阈值函数:

    Bruce和Gao。提出了一种半软阈值函数:

    image

    该方法通过选择合适的阈值T1和12,可以在软阈值方法和硬阈值方法之间达到很好的折中。另外,zhang等人为了对SIJRE误差准则函数进行基于梯度的优化搜索,提出了另外一种阈值函数,这种阈值函数同上边闭值函数所不同的是它拥有更高的导数阶,故其重建图像更为平滑,但该文作者将去噪效果的提高归功于搜索方法,其实,Donoh。和 Johnstone提出的在当前小波系数集合中,搜索最优阈值的方法,对于当前已经是优的了,由此可见,该去噪效果的提高则应归功于阈值函数的选取。

    5.3 基于PDE的图像去噪

    目前,基于PDE的图像处理方法的研究,也是图像去噪的研究热点方向,并且己经取得了一定的理论和实际应用方面的成它的去噪过程为通过建立噪声图像为某非线性PDE的初始条件,然后求解这个PDE,得到在不同时刻的解,即为滤波结果。Perona和Malik提出了基于PDE的非线性扩散滤波方法(以下简称P-M),各向异性的去噪模型根据图像的梯度值决定扩散的速度,使之能兼顾噪声消除和边缘保持两方面的要求。

    以P-M模型为代表的这类方法己经在图像增强、图像分割和边缘检测等领域得到了广泛的应用,取得了很好的效果。

    P-M是一种非线性的各向异性方法,目的是为了克服线性滤波方法存在的模糊边缘和边缘位置移动的缺点。基本思想是:图像特征强的地方减少扩散系数,图像特征弱的地方增强扩散系数。方程如下:

    image

    其中u(x,y,t)是随时间变化的图像,image是梯度的模,image扩散系数函数用于控制扩散速度。理想的扩散系数应当使各向异性扩散在灰度变化平缓的区域快速进行,而在灰度变化急剧的位置(即图像特征处)低速扩散乃至不扩散函数,所以,imag应具有如下性质:

    image

    基于以上的两个性质,P-M提出了如下扩散系数函数:

    image

    其中k为边缘阈值,用来判断边缘区域和平坦区域。引入通量函数,主要是为了阐明阈值k在扩散操作中的作用,其函数定义如下:

    image

    尽管P-M方程在抑制噪声与保留图像重要特征方面取得了一定的效果,但却表现出病态且不稳定。Catt等人对该方程进行了改进,他们先用高斯核同图像作卷积,然后取其梯度模作图像边缘信息的估计。文献提出用优化的对称指数滤波器对图像作光滑,然后取其梯度模作图像边缘信息的估计。这两种估计方法的基本思想是降低噪声的干扰,更加真实地提取图像的边缘特征信息,以便利用边缘信息更好地控制P-M方程的扩散行为。

    5.4 全变分(TV)图像去噪

    TV方法是由Rudin Osher and Fatemi提出,它基于变分法的思想,确定图像的能量函数,通过对图像能量函数最小化达到平滑去噪的目的。是现在比较流行的图像复原方法。图像的能量函数方程为:

    image

    在文献[2]中给出的全变分去噪能量泛函为:

    image

    为了使得能量函数最小,其欧拉-拉格朗日方程为:

    image

    其中,梯度算子:

    image

    正则项:

    image

    用来减少平坦区域的退化。将整体左边转换成图像中任意像素点中的局部坐标系后,方程可以分解成边缘方向和边缘正交的两个方向,分解后个方向的系数控制着该方向的扩散强度。扩散方向实际上是一个分线性的各向异性的扩散方程,其扩散算子仅沿图像梯度的正交方向扩散,扩散系数为1/|▽μ|,而朝着梯度方向无扩散。这样可以通过图像的梯度来判断边缘位置,使得边缘扩散系数最小,从而降低对边缘的模糊程度,但是也由于边缘的扩散系数小,噪声得不到很好的抑制,而且当|▽μ|>λ的时候,势能函数是非凸的,使得边缘处处理表现不稳定。所以,如何确定扩散参数的值是一个问题。

    参考文章:https://blog.csdn.net/Arcsinsin/article/details/12260373

    在空间域上的各种滤波器在OpenCV中均有相应的实现方式,例如:
    OpenCV(4)–HPF高通滤波器
    OpenCV(13)–图片模糊处理(平滑)
    等等

    图像处理系列笔记: https://blog.csdn.net/qq_33208851/article/details/95335809
    关于我的OpenCV文章

    展开全文
  • 图像处理-图像添加高斯噪声并滤波

    千次阅读 2015-03-27 21:09:07
    题目:对含有高斯噪声图像进行滤波 思考:先对图像添加高斯噪声,在对图像进行中值滤波,高斯滤波,均值滤波,形态学滤波,以及闭运算后进行中值滤波操作。 实验结果如图: MATLAB代码如下: ...

    题目:对含有高斯白噪声的图像进行滤波

    思考:先对图像添加高斯白噪声,在对图像进行中值滤波,高斯滤波,均值滤波,形态学滤波,以及闭运算后进行中值滤波操作。

    实验结果如图:



    MATLAB代码如下:

    clear; clc; close all;
    im = imread('apple.jpg');
    
    %% 添加高斯白噪声
    im_gaus = imnoise(im, 'gaussian', 0, 0.02); % 添加均值为0,方差为0.02的高斯白噪声
    figure('NumberTitle', 'off', 'Name', 'smooth apple with gaussian noise');
    subplot(3, 4, 1);
    imshow(im); % 显示原始图像
    title('apple-Original');
    subplot(3, 4, 2);
    imshow(im_gaus); % 显示添加高斯白噪声的图像
    title('apple-gaussian noise');
    
    %% 图像滤波
    im_gray = rgb2gray(im_gaus); % 彩色图转灰度图
    im_bw = im2bw(im_gray, 0.9); %灰度图转二值图
    subplot(3, 4, 3);
    imshow(im_gray); % 显示灰度图
    title('apple-gray');
    subplot(3, 4, 4);
    imshow(im_bw); % 显示二值图
    title('apple-binary');
    % 中值滤波
    im_med = medfilt2(im_bw);
    im_med = medfilt2(im_med);
    im_med = medfilt2(im_med);
    subplot(3, 4, 5);
    imshow(im_med); % 显示中值滤波后的图像
    title('apple-medfilt_3');
    % 高斯滤波
    h = fspecial('gaussian', [18 18], 0.15);
    im_gausfilt = imfilter(im_bw, h);
    subplot(3, 4, 6);
    imshow(im_gausfilt); % 显示高斯低通滤波后的图像
    title('apple-gausfilt');
    im_gf_med = medfilt2(im_gausfilt); % 对高斯滤波后的图像进行中值滤波
    subplot(3, 4, 7);
    imshow(im_gf_med); % 显示高斯+中值滤波后的图像
    title('apple-gaus-med');
    % 均值滤波
    h = fspecial('average', [5, 5]);
    im_mean = imfilter(im_bw, h);
    subplot(3, 4, 8);
    imshow(im_mean); % 显示均值滤波后的图像
    title('apple-mean');
    % 形态学滤波
    se = strel('disk', 2); %  创建一个平坦的圆盘型结构元素,半径为2
    % 闭运算:先膨胀再腐蚀
    im_clos = imclose(im_bw, se);
    subplot(3, 4, 9);
    imshow(im_clos);
    title('imclose');
    % 闭运算之后再进行中值滤波
    im_clos_med = medfilt2(im_clos);
    subplot(3, 4, 10);
    imshow(im_clos_med);
    title('imclose+med');
    % 开运算:先腐蚀再膨胀
    im_op = imopen(im_bw, se);
    % im_op = imopen(im_clos_med, se); % 开运算进行孔洞填充
    subplot(3, 4, 11);
    imshow(im_op);
    title('impen');
    % 利用imfill对图像进行孔洞填充
    im_clos_med_fil = imfill(im_clos_med);


    展开全文
  • 数字图像处理——添加高斯噪声&椒盐噪声

    万次阅读 多人点赞 2017-07-31 12:35:04
    1.添加高斯噪声1.1 概率密度函数σ为z的标准差,z为均值,用E。1.2 生成高斯分布随机数序列方法由Marsaglia和Bray在1964年提出,C++版本如下: mu是均值,sigma是方差,X服从N(0,1)分布 double generateGaussianNoise...
  • 本文主要介绍给图像添加椒盐噪声和高斯噪声,以及其代码实现和除噪的方法 若要获取更多数字图像处理,python,深度学习,机器学习,计算机视觉等高清PDF以及 更多有意思的 分享,可搜一搜 微信公共号 “分享猿” ...
  • MATLAB--数字图像处理 添加高斯噪声

    万次阅读 多人点赞 2019-12-14 11:31:23
    添加高斯噪声 概念 高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关...
  • 高斯噪声 高斯噪声是指高绿密度函数服从高斯分布的一类噪声。特别的,假设一个噪声,它...应用:一些美颜软件、美颜相机上的磨皮和毛玻璃特效基本上都是用的高斯模糊,并且大部分图像处理软件中都有高斯模糊的操作,...
  • 1.对一张图片添加不同强度的高斯噪声、椒盐噪声 2.对图像进行不同模板的均值滤波、高斯加权滤波、中值滤波,对比结果并分析不同滤波方式的优劣 四、实验仪器与设备 Win10 64位电脑 MATLAB2017a 五、实验原理 高斯...
  • 利用opencv为图像添加高斯噪声

    热门讨论 2020-07-30 23:32:24
    利用opencv为图像添加高斯噪声的C++代码,有助于学习opencv和图像处理
  • 图像加入高斯噪声和平滑处理代码 a=imread('lena.jpg'); subplot(221); imshow(a); title ('原始图像'); Inoise=imnoise(a,'gaussian',0.1,0.004);%对图像加入高斯噪声 subplot(222); imshow(Inoise); title('加入...
  • 图像处理-图像加高斯噪声之后除噪

    千次阅读 2013-10-29 22:42:43
    一副图像高斯噪声之后,通过100次相加求和的方法除噪声,其matlab实现以及遇到的问题:源代码: I=imread('C:\Users\1.png'); J=imnoise(I,'gaussian',0,0.02); %对图像进行加噪声 subplot(1,2,1),imshow(I);...
  • %读取并显示原有图像 subplot(1,2,1); imshow(oriImg); title ('原始图像');%显示原始图像 grayImg = rgb2gray(oriImg);%转成灰度图像 subplot(1,2,2); imshow(grayImg); title ('灰度图像');%显示灰度图像 figur
  • 开门见山,直接使用 skimage 库为图像添加高斯噪声是很简单的: import skimage origin = skimage.io.imread("./lena.png") noisy = skimage.util.random_noise(origin, mode='gaussian', var=0.01) 但是如果不用...
  • 图像噪声是影响人们接受图像信息的因素,常见的噪声有高斯噪声和椒盐噪声。因为最近课程要求,做一个图像恢复的Project,所以掌握了给图像添加噪声以及去除噪声的方法。   给图像添加高斯噪声  高斯噪声是大量...
  • 用C语言对图像高斯噪声

    热门讨论 2020-07-21 10:00:49
    图像处理初学者参考用,用随机数方法对原图像加高斯噪声
  • 如何正确地给图像添加高斯噪声

    千次阅读 2019-03-20 17:48:22
    高斯噪声是一个均值为 0 方差为 $\sigma_n^2$ 的正态分布,是一个加性噪声。但要正确地给图片添加高斯噪声,还要取决于程序中读入图片的数据格式。 如果图片的数据格式为 uint8,也即数据的范围为 [0, 255],那么...
  • 图像添加椒盐噪声和高斯噪声

    万次阅读 2017-08-03 11:49:51
    下面简单介绍两种图像噪声,即椒盐噪声和高斯噪声。 1.椒盐噪声  椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素...
  • 随机噪声、高斯噪声、椒盐噪声的添加
1 2 3 4 5 ... 20
收藏数 17,896
精华内容 7,158
关键字:

图像处理 高斯噪声