• package test.opencv; import org.junit.Test; import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.Point;...import org.opencv.core.Size;...import org.opencv.imgcodecs.Imgcodecs;...

    opencv去除噪声包括:
    1.均值滤波
    2.高斯滤波
    3.中值滤波

    package test.opencv;
    
    import org.junit.Test;
    import org.opencv.core.Core;
    import org.opencv.core.Mat;
    import org.opencv.core.Point;
    import org.opencv.core.Size;
    import org.opencv.imgcodecs.Imgcodecs;
    import org.opencv.imgproc.Imgproc;
    
    /**
     * 图片去噪声
     * @author hecj
     */
    public class ImageZaoSheng {
    
        /**
         * 均值滤波
         */
        @Test
        public void blur() {
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
            // 加载时灰度
            Mat src = Imgcodecs.imread("/Users/hecj/Desktop/car/erzhi.jpeg");
            Mat dst = src.clone();
            Imgproc.blur(src, dst, new Size(9,9), new Point(-1, -1), Core.BORDER_DEFAULT);
            Imgcodecs.imwrite("/Users/hecj/Desktop/car/erzhi_1.jpeg", dst);
    
        }
        /**
         * 高斯滤波
         */
        @Test
        public void GaussianBlur() {
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
            // 加载时灰度
            Mat src = Imgcodecs.imread("/Users/hecj/Desktop/car/erzhi.jpeg");
            Mat dst = src.clone();
            Imgproc.GaussianBlur(src, dst, new Size(9,9), 0, 0, Core.BORDER_DEFAULT);
            Imgcodecs.imwrite("/Users/hecj/Desktop/car/erzhi_2.jpeg", dst);
        }
    
        /**
         * 中值滤波
         */
        @Test
        public void medianBlur() {
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
            Mat src = Imgcodecs.imread("/Users/hecj/Desktop/car/erzhi.jpeg");
            Mat dst = src.clone();
            Imgproc.medianBlur(src, dst, 7);
            Imgcodecs.imwrite("/Users/hecj/Desktop/car/erzhi_3.jpeg", dst);
        }
    }
    

    中值滤波结果:
    这里写图片描述

    去噪声后:
    这里写图片描述

    展开全文
  • 噪声分类及其消除方法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文章

    展开全文
  • 最小值最大值中值均值滤波去除高斯噪声和椒盐噪声 #代码如下: clear;clc; f=imread(‘rice.png’); f1=imnoise(f,‘gaussian’); f2=imnoise(f,‘salt & pepper’,0.02); [m,n]=size(f1); g1=f1; g2=f2; mask=...

    最小值最大值中值均值滤波去除高斯噪声和椒盐噪声

    #代码如下:

    clear;clc;
    f=imread(‘rice.png’);
    f1=imnoise(f,‘gaussian’);
    f2=imnoise(f,‘salt & pepper’,0.02);
    [m,n]=size(f1);
    g1=f1;
    g2=f2;
    mask=[1 1 1;1 1 1;1 1 1]/9;
    for x=2:m-1
    for y=2:n-1
    subimage=double(f1(x-1:x+1,y-1:y+1));
    temp=subimage.*mask;
    g1(x,y)=round(sum(sum(temp)));
    subimage2=double(f2(x-1:x+1,y-1:y+1));
    temp2=subimage2.*mask;
    g2(x,y)=round(sum(sum(temp2)));
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1);
    subplot(222),imshow(f2);
    subplot(223),imshow(g1);
    subplot(224),imshow(g2);

    clear;clc;
    I=imread(‘rice.png’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n]=size(f1);
    g1=f1;
    g2=f2;
    mask=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1]/25;
    for x=3:m-2
    for y=3:n-2
    subimage=double(f1(x-2:x+2,y-2:y+2));
    temp=subimage.*mask;
    g1(x,y)=round(sum(sum(temp)));
    subimage2=double(f2(x-2:x+2,y-2:y+2));
    temp2=subimage2.*mask;
    g2(x,y)=round(sum(sum(temp2)));
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1);
    subplot(222),imshow(f2);
    subplot(223),imshow(g1);
    subplot(224),imshow(g2);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1 ]/25;
    for x=3:m-2
    for y=3:n-2
    subimage = double(f1(x-2:x+2,y-2:y+2));
    a = reshape(subimage,1,25);
    a = sort(a);
    g1(x,y) = a(1);
    subimage2 = double(f2(x-2:x+2,y-2:y+2));
    a = reshape(subimage2,1,25);
    a = sort(a);
    g2(x,y) = a(1);
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘55最小值去除高斯噪声’);
    subplot(224),imshow(g2),title('5
    5最小值去除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1 ]/25;
    for x=3:m-2
    for y=3:n-2
    subimage = double(f1(x-2:x+2,y-2:y+2));
    a = reshape(subimage,1,25);
    a = sort(a);
    g1(x,y) = a(25);
    subimage2 = double(f2(x-2:x+2,y-2:y+2));
    a = reshape(subimage2,1,25);
    a = sort(a);
    g2(x,y) = a(25);
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘55最大值去除高斯噪声’);
    subplot(224),imshow(g2),title('5
    5最大值去除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1 ]/25;
    for x=3:m-2
    for y=3:n-2
    subimage = double(f1(x-2:x+2,y-2:y+2));
    a = reshape(subimage,1,25);
    a = sort(a);
    g1(x,y) = (a(1)+a(25))/2;
    subimage2 = double(f2(x-2:x+2,y-2:y+2));
    a = reshape(subimage2,1,25);
    a = sort(a);
    g2(x,y) = (a(1)+a(25))/2;
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘55中点去除高斯噪声’);
    subplot(224),imshow(g2),title('5
    5中点去除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1;1 1 1;1 1 1]/9;
    for x=2:m-1
    for y=2:n-1
    subimage = double(f1(x-1:x+1,y-1:y+1));
    a = reshape(subimage,1,9);
    a = sort(a);
    g1(x,y) = a(1);
    subimage2 = double(f2(x-1:x+1,y-1:y+1));
    a = reshape(subimage2,1,9);
    a = sort(a);
    g2(x,y) = a(1);
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘33模板最小值除高斯噪声’);
    subplot(224),imshow(g2),title('3
    3模板最小值去除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1;1 1 1;1 1 1]/9;
    for x=2:m-1
    for y=2:n-1
    subimage = double(f1(x-1:x+1,y-1:y+1));
    a = reshape(subimage,1,9);
    a = sort(a);
    g1(x,y) = a(5);
    subimage2 = double(f2(x-1:x+1,y-1:y+1));
    a = reshape(subimage2,1,9);
    a = sort(a);
    g2(x,y) = a(5);
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘33模板中值除高斯噪声’);
    subplot(224),imshow(g2),title('3
    3模板中值去除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1;1 1 1;1 1 1]/9;
    for x=2:m-1
    for y=2:n-1
    subimage = double(f1(x-1:x+1,y-1:y+1));
    a = reshape(subimage,1,9);
    a = sort(a);
    g1(x,y) = (a(1)+a(9))/2;
    subimage2 = double(f2(x-1:x+1,y-1:y+1));
    a = reshape(subimage2,1,9);
    a = sort(a);
    g2(x,y) = (a(1)+a(9))/2;
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘33中点去除高斯噪声’);
    subplot(224),imshow(g2),title('3
    3中点去除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1;1 1 1;1 1 1]/9;
    for x=2:m-1
    for y=2:n-1
    subimage = double(f1(x-1:x+1,y-1:y+1));
    a = reshape(subimage,1,9);
    a = sort(a);
    g1(x,y) = a(9);
    subimage2 = double(f2(x-1:x+1,y-1:y+1));
    a = reshape(subimage2,1,9);
    a = sort(a);
    g2(x,y) = a(9);
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘33模板去除高斯噪声’);
    subplot(224),imshow(g2),title('3
    3模板除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1;1 1 1;1 1 1]/9;
    for x=2:m-1
    for y=2:n-1
    subimage = double(f1(x-1:x+1,y-1:y+1));
    a = reshape(subimage,1,9);
    a = sort(a);
    g1(x,y) = a(9);
    subimage2 = double(f2(x-1:x+1,y-1:y+1));
    a = reshape(subimage2,1,9);
    a = sort(a);
    g2(x,y) = a(9);
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title(‘33模板去除高斯噪声’);
    subplot(224),imshow(g2),title('3
    3模板除椒盐噪声’);

    I = imread(‘pout.tif’);
    f1=imnoise(I,‘gaussian’);
    f2=imnoise(I,‘salt & pepper’,0.02);
    [m,n] = size(I);
    g1=f1;
    g2=f2;
    mask=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1; 1 1 1 1 1]/25;
    for x=3:m-2
    for y=3:n-2
    subimage = double(f1(x-2:x+2,y-2:y+2));
    temp = subimage.mask;
    g1(x,y) = round(sum(sum(temp)));
    subimage2 = double(f2(x-2:x+2,y-2:y+2));
    temp2 = subimage2.mask;
    g2(x,y) = round(sum(sum(temp2)));
    end
    end
    g1=uint8(g1);
    g2=uint8(g2);
    subplot(221),imshow(f1),title(‘高斯噪声’);
    subplot(222),imshow(f2),title(‘椒盐噪声’);
    subplot(223),imshow(g1),title('5
    5均值滤波去除高斯噪声’);
    subplot(224),imshow(g2),title('5
    5均值滤波效果去除椒盐噪声’);

    展开全文
  • 图像条纹噪声去除中的水平和垂直梯度变化1.背景知识1.1梯度1.2 条纹噪声2.条纹噪声去除中的水平和垂直梯度变化 1.背景知识 1.1梯度 数学梯度:是一个向量,由一组正交的方向导数组成,表示函数在该点处的方向导数...

    最近看文章,发现图像条纹噪声中需要整理一些内容,就此写下以便回顾

    1.背景知识

    1.1梯度

    数学梯度:是一个向量,由一组正交的方向导数组成,表示函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向变化最快,变化最大。

    • 设函数f(x,y)在平面区域D内有一阶连续偏导数,则对于每一个点(x,y)∈D(x,y),都可得到一个向量:

    在这里插入图片描述

    • 梯度的模:
      在这里插入图片描述
    • 梯度方向:
      在这里插入图片描述

    图像梯度的定义:

    图像函数f(x,y)在点(x,y)的梯度是一个具有大小和方向的矢量,设为Gx 和 Gy 分别表示x方向和y方向的梯度,这个梯度的矢量可以表示为:
    在这里插入图片描述
    对图像梯度而言,图像上亮度变化值大的地方(也就是图像边缘部分)表示有较大梯度值的地方

    1.2 条纹噪声

    在图像采集系统中,由于光线变化及所使用的线阵相机(CCD)本身的影响,在获得的图像中都会有横条纹或者竖条纹的存在,它们统称为条纹噪声。这种噪声会对图像质量及后续图像分析都产生一定的影响。

    对于垂直(水平)条纹,现有的去条纹方法可以大致分为四类:基于数字过滤的方法,基于统计的方法,基于优化的方法和基于学习的方法。基于滤波的方法通过在变换域上构造滤波器来抑制条纹噪声,例如:

    • 傅里叶变换,根据频域条纹噪声的功率谱特性,可知条纹噪声在频域中表现为具有对称性的一些峰值。竖直条纹集中于傅里叶频域能量谱的水平轴上,并且每个噪声条纹的 宽度都不一样,所以在频谱能量的水平方线也有一定的宽度,基于以上原理,就可以在频域中对噪声进行滤除。而去噪的重点是怎样准确地定位条纹噪声对应的频率点,然后采取合适的频域手段去除。

    • 小波分析和组合域滤波器。

    • 基于统计的方法主要依赖于每个传感器的统计特性,例如矩匹配和直方图匹配。

    • 基于优化的方法将去条带视为一个不适定的反问题,并通过求解调节模型进行去条带化,如:

    • 各向异性光谱 - 空间总变差(TV)模型,改进的单向总变差(UTV)模型,低 -rank 模型和全局稀疏模型。

    • 基于学习的方法引入深度卷积神经网络(CNN)进行去条带化,以自适应方式提取条带的空间信息。
      在这里插入图片描述

    2.条纹噪声去除中的水平和垂直梯度变化

    含噪图像和原始图像的梯度变化有很明显的规律性。当条纹是垂直的时,条纹严重破坏条纹线方向(水平方向)上的梯度变化,同时沿条纹线的影响较小(垂直方向)。我们发现条纹主要破坏了原始图像水平梯度方向的稀疏性。

    • 原始图像
      在这里插入图片描述
    • 水平梯度(左)与垂直梯度(右):

    在这里插入图片描述
    这种特性可以利用方向总变分来捕捉图像梯度域中的这种差异,从而将条纹噪声与变换域中的干净图像分离。不过是否可以应用于不同于遥感图像的DEM图像上,有待进一步的实验。

    展开全文
  • 用matlab实现去除图像噪声,效果很好,简单易行。
  • 椒盐噪声 什么是椒盐噪声 椒盐噪声,就是椒噪声和盐噪声的混合噪声。其中,椒噪声的椒即是黑胡椒之意,在图像中表现为黑色点斑;而盐噪声则是取自食盐,在图像中表现为白色点状。一般两种噪声图像中混合出现,...

    椒盐噪声

    1. 什么是椒盐噪声
      椒盐噪声,就是椒噪声和盐噪声的混合噪声。其中,椒噪声的椒即是黑胡椒之意,在图像中表现为黑色点斑;而盐噪声则是取自食盐,在图像中表现为白色点状。一般两种噪声在图像中混合出现,表现为黑白混杂。
    2. 如何添加椒盐噪声
      因为椒噪声表现为黑色,属于低灰度图像;盐噪声表现为白色,属于高灰度图像。利用这种特性,可以在图像中随机选取像素点赋值为0或者255,通常为了便于人眼分辨,随机赋值为255.
    3. 如何去除椒盐噪声
      椒盐噪声的像素值为0或者255,用中值滤波的方法处理效果非常好。中值滤波是在对一个区域的像素值进行大小排序,取其中值代表这一区域的像素值。因此对于消弱高低频分量对图像的影响的效果非常明显。
      opencv实现程序:https://blog.csdn.net/m0_37992521/article/details/89840367
    展开全文
  • 本文主要讲述的是如何去除图像中周期性的线性噪声,尝试过的方法从空域的开关中值滤波到频域的陷波滤波等,在此做个总结
  • 《数字图像处理》课程中噪声的消除处理过程
  • 图像噪声与滤波处理 二、实验目的 1.熟悉MATLAB软件的使用。 2.掌握图像噪声与滤波处理。 三、实验内容 1.对一张图片添加不同强度的高斯噪声、椒盐噪声 2.对图像进行不同模板的均值滤波、高斯加权滤波、中值滤波...
  • 噪声分类: 高斯噪声 是随机噪声, 服从高斯分布 主要特点表现为:麻点 椒盐噪声 胡椒噪声、盐噪声 主要特点表现为:黑白点 噪声的描述 均方误差 MSE : MSE越大,失真率越大 峰值信噪比 PSNR:...
  • 图像在拍摄和传输过程中 , 由于所使用的器件和传输通道 的局限性 , 而被加人 了大量 的噪声 , 严重影 响了图像的视觉效 果 , 甚至妨碍了人们的正常识别。 因此 , ...为图像处理的一项重要的任务 。
  • 数字图像处理噪声

    2020-07-10 23:31:01
    数字图像处理专业课中实验所需要的代码,下载后可直接运行出结果。
  • 给定皮肤镜黑素细胞瘤图像,检测毛发噪声,并修复毛发遮挡部位的信息。 (1)灰值化:对皮肤镜黑素细胞瘤彩色图像进行灰值化处理,将彩色图像变成灰度格式; (2)波谷检测器:使用结构元素对给定灰度图像进行形态学灰度...
  • 图像噪声与去噪

    2020-05-15 10:28:34
     图像在生成和传输过程中常常因受到各种噪声的干扰和影响而是图像降质,这对后续图像处理图像视觉效应将产生不利影响。噪声种类很多,比如:电噪声,机械噪声,信道噪声和其他噪声。因此,为了抑制噪声,改善...
  • 图像噪声去除

    2020-06-29 15:50:50
    实验3 图像噪声去除 一、实验目的 1、掌握基于均值平滑操作的信号去噪方法的基本原理(适用于一维或二维信号的情况)。了解加性噪声和乘性噪声各自的特点。 2、掌握均值滤波器的工作原理和算法实现。 3、掌握中值...
  • ![图片说明]...!...!...我用imfill(bw,'holes');进行孔洞填充后无法去除与边界相连的伪目标,而且后面进行圆形度和面积计算时都会把图像边界给算进去,请问各位大神这个是怎么回事呀?求指导,本人将不胜感激呀!
  • 源码 #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui_c.h> #include <iostream> using namespace cv; using namespace std; //定义全局变量存储路径信息 ...int ma...
  • 数字图像处理使用matlab进行噪声过滤,内含高斯噪声及椒盐噪声,运用各种算子进行过滤的效果对比,以及详细的实验报告
  • 噪声指的是存在于图像中不必要的或者说是多余的干扰信息,一般分为外部噪声和内部噪声。 (https://baike.baidu.com/item/%E5%9B%BE%E5%83%8F%E5%99%AA%E5%A3%B0/4116468?fr=aladdin) 1-2:常见噪声及介绍 1-2-1:...
  • python数字图像处理-图像噪声与去噪算法图像噪声椒盐噪声概述: 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。椒盐噪声...
1 2 3 4 5 ... 20
收藏数 13,673
精华内容 5,469