图像增强_图像增强matlab - CSDN
图像增强 订阅
增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合。有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。 展开全文
增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合。有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。
信息
外文名
image enhancement
类    型
频率域法和空间域法
方    法
基于空域的算法和基于频域的算法
中文名
图像增强
目    的
改善图像的视觉效果
应用领域
航空航天领域、生物医学领域等
图像增强基本信息
图像增强可分成两大类:频率域法和空间域法。前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。后者空间域法中具有代表性的算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。在图像增强过程中,不分析图像降质的原因,处理后的图像不一定逼近原始图像。图像增强技术根据增强处理过程所在的空间不同,可分为基于空域的算法和基于频域的算法两大类。空域法是对图像中的像素点进行操作,用公式描述如下:g(x,y)=f(x,y)*h(x,y)其中是f(x,y)是原图像;h(x,y)为空间转换函数;g(x,y)表示进行处理后的图像。基于空域的算法处理时直接对图像灰度级做运算,基于频域的算法是在图像的某种变换域内对图像的变换系数值进行某种修正,是一种间接增强的算法。基于空域的算法分为点运算算法 [1]  和邻域去噪算法 [2]  。点运算算法即灰度级校正、灰度变换和直方图修正等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。邻域增强算法分为图像平滑和锐化两种。平滑一般用于消除图像噪声,但是也容易引起边缘的模糊。常用算法有均值滤波、中值滤波。锐化的目的在于突出物体的边缘轮廓,便于目标识别。常用算法有梯度法、算子、高通滤波、掩模匹配法、统计差值法等。
收起全文
精华内容
参与话题
  • 图像增强方法

    千次阅读 2019-08-28 20:43:18
    图像增强的目的是采用某种技术手段,改善图像的视觉效果,或者将图像转换成更适合人眼观察和机器识别的形式。图像增强的基本方法主要有灰度变换、灰度均衡、伪彩色增强、平滑、锐化、滤波等。灰度变换、灰度均衡。 ...

           图像增强的目的是采用某种技术手段,改善图像的视觉效果,或者将图像转换成更适合人眼观察和机器识别的形式。图像增强的基本方法主要有灰度变换、灰度均衡、伪彩色增强、平滑、锐化、滤波等。灰度变换、灰度均衡。

    线性滤波:方框滤波、均值滤波、高斯滤波 

    非线性滤波:中值滤波、双边滤波

    图像增强可以分为两种:

    • 领域处理技术。对像素点及其周围的点进行处理,即使用卷积核。
    • 点处理技术。只对单个像素进行处理

    点运算

    线性变换
    图像增强线性变换主要对图像的对比度和亮度进行调整,线性变换公式如下:
     

    参数 a 影响图像的对比度,参数 b 影响图像的亮度,具体分为可分为以下几种情况:

    a>1: 增强图像的对比度,图像看起来更加清晰
    a<1: 减小了图像的对比度, 图像看起来变模糊
    a<0 and b=0:图像的亮区域变暗,暗区域变亮
    a=1 and b≠0:图像整体的灰度值上移或者下移,也就是图像整体变亮或者变暗,不会改变图像的对比度,b>0时图像变亮,b<0时图像变暗
    a=-1 and b=255:图像翻转

    cv::convertScaleAbs()用于实现对整个图像数组中的每一个元素,进行如下操作:

     该操作可实现图像增强等相关操作的快速运算,具体用法如下:

    void cv::convertScaleAbs(
        cv::InputArray src, // 输入数组
        cv::OutputArray dst, // 输出数组
        double alpha = 1.0, // 乘数因子
        double beta = 0.0 // 偏移量
    );

    分段线性变换

    https://blog.csdn.net/cyf15238622067/article/details/87717092 

    对数变换

    图像直方图均衡化

    幂律变换/gamma变换

    高反差保留
           高反差保留主要是将图像中颜色、明暗反差较大两部分的交界处保留下来,比如图像中有一个人和一块石头,那么石头的轮廓线和人的轮廓线以及面部、服装等有明显线条的地方会变被保留,儿其他大面积无明显明暗变化的地方则生成中灰色。其表达形式为:dst = r*(img - Blur(img))。

    	Mat image = imread("test.jpg");
    	Mat temp;
    	GaussianBlur(image, temp, Size(7, 7), 2.0);
    
    	int r = 10;
    	Mat diff = image + r * (image - temp); //高反差保留算法
    
    	imshow("原图", image);
    	imshow("反差图片", diff);
    

     

    加Masaic算法

      在日常中有时候保密或其他需要将图像马赛克,下面的算法实现图像马赛克功能(原理:用中心像素来表示邻域像素)。 

    uchar getPixel( IplImage* img, int row, int col, int k)
    {
        return ((uchar*)img->imageData + row* img->widthStep)[col*img->nChannels +k];
    }
     
    void setPixel( IplImage* img, int row, int col, int k, uchar val)
    {
        ((uchar*)img->imageData + row* img->widthStep)[col*img->nChannels +k] = val;
    }
    
    // nSize:为尺寸大小,奇数
    // 将邻域的值用中心像素的值替换
    void Masic(IplImage* img, IplImage* dst, int nSize)
    {
        int offset = (nSize-1)/2;
        for ( int row = offset; row <img->height - offset; row= row+offset)
        {
            for( int col= offset; col<img->width - offset; col = col+offset)
            {
                int val0 = getPixel(img, row, col, 0);
                int val1 = getPixel(img, row, col, 1);
                int val2 = getPixel(img, row, col, 2);
                for ( int m= -offset; m<offset; m++)
                {
                    for ( int n=-offset; n<offset; n++)
                    {
                        setPixel(dst, row+m, col+n, 0, val0);
                        setPixel(dst, row+m, col+n, 1, val1);
                        setPixel(dst, row+m, col+n, 2, val2);
                    }
                }
            }
        }
    
    

    图像滤波


    图像滤波包括空间域滤波和频率域滤波。

    伪彩色增强、平滑、锐化和滤波。

    参考:

    https://blog.csdn.net/weixin_39731083/article/details/81227533

    https://blog.csdn.net/kezunhai/article/details/41553097

    展开全文
  • 【计算机视觉】图像处理——图像增强技术(一)

    万次阅读 多人点赞 2020-08-18 15:44:37
    好久没有发过计算机视觉的...然而如果把这种事情交给计算机来做的话,可能就有难度了,所以,为了让人工智能设备的视觉系统可以更加准确地找到我们想让它找到的目标,视觉三个基本步骤的第一个步骤——图像处理,就...

    好久没有发过计算机视觉的文章啦~

    差点就忘记自己的本职工作了......

    —————————————下面是正文—————————————

           对于人的眼睛来说,要识别一幅不太清晰的照片上面的人物可能不是一件难事,然而如果把这种事情交给计算机来做的话,可能就有难度了,所以,为了让人工智能设备的视觉系统可以更加准确地找到我们想让它找到的目标,视觉三个基本步骤的第一个步骤——图像处理,就显得尤为重要(三个基本步骤不知道是哪三个的同学可以找我之前的视觉文章【计算机视觉】数字图像以及图像处理的基本步骤,增加下点击量,hiahiahia~),

           作为视觉处理的第一步,图像处理主要负责把图像进行初步的去噪、增强等,使得原本模糊的照片变得比原来更为清晰,突出目标,但是值得注意的是,视觉处理大部分情况下都是为了突出目标而达到尽量接近清晰的结果,并不能百分百地把一张照片还原成原图,比如想百分百去掉马赛克什么的......还是想想就好~(其实去马赛克最有效的方法是眯着眼然后远远地看 ~-~)

           在图像处理中,有很多的方法可以让图像变得清晰,其中一个就是叫 “图像增强” 的方法 ,图像增强主要应用在图像特别暗时,或者因为曝光太亮而无法让目标突出,这个时候就需要把目标的亮度提高一点,然后把不必要的障碍(俗称:噪声)调暗,以把目标清晰度最大化。今天就来讲几个比较简单的,专门对于像素进行处理的方法。

     

    一.对比度增强法

           对比度增强的方法有很多,其中最简单的就是让每个像素都乘以一个数,使得图像整体的像素扩大,提高对比度。在这里说一下什么是对比度:图像的亮区与暗区的灰度的比值,图像的对比度越大,明暗的区分就会更加明显,目标更为突出。什么是叫灰度值:图像上各个像素的亮度值。图像从模拟量转化到数字量,经由量化和采样之后,将一幅图像分成了N个格子,而这个格子就称之为 “像素” , 每个格子里面都保存有一个离散型数字,代表这个地方的灰度值。

           假设用 (x,y) 来表示每个像素的位置,辣么 每个像素中的灰度值就可以用  F(x,y) 来表示,G(X , Y) 表示经过对比度增强的处理之后的像素值,辣么用一个标准的公式就可以这样来表达:

                                                                

           其中   N    代表倍数,下面我们来用  MATLAB  来实现一下对比度增强,图像就用一下这张在百度上搜刮下来的:

                                      

                                                                       原     图

                                                 

                                                                      原图直方图

           处理的代码略微简单,就只有那么几行,主要就是读入图像,然后把图像的每个像素都乘以N倍,然后输出就可以了。

    I = imread("yuantu.jpg"); %读入原图
    I1 = 2 * I; %把原图的每个像素都乘以2倍
    figure,imshow(I1); %输出处理后的图像

            执行代码可以得到如下效果图

                                          

                                                                        结 果 图

                                                    

                                                                       结果图直方图

           由图可以看出,当源图像的所有像素全部扩大两倍之后,原先一些暗区会变得超级清晰,但同时原本已经够清楚的地方也会因为像素扩大而变得高亮

     

    二.灰度变换

             灰度值变换主要是分为 线性变换非线性变换 两种,因线性较多,先介绍线性变换

          (1).线性变换

            线性变换可以被应用于因成像设备动态范围太狭窄等因素造成的对比度不足、细节分辨不清等问题,采用线性变换可以把图像的某一个像素相对集中的范围拉宽到某一个范围之内,使得因灰度值过度集中而导致图像细节不清晰的问题。用坐标系来表示如下

                                   

            举个栗子,以下图为例

                                              

                                                      原  图

            第一步:先调出原图的直方图

                                              

            由直方图可以得知,原图的像素值主要集中在0.4~0.7这个范围,所以,如果我们把[0.4 0.7]的像素值扩展到 [0 1]范围中,将会使得原图中大片相同的像素降低,而原图中的细节将会被提亮

             第二步:灰度范围拉伸

             这一步实现起来也非常的简单,因为MATLAB里面有个函数叫 imadjust(I,[low_in; high_in],[low_out; high_out])  ,具体的用法可以再 MATLAB 的命令行里面输入 : help imadjust 获取详细用法 。

    I3 = imadjust(I,[0.45 0.7],[]); %在这里,I 表示输入的原图,经过函数的处理之后在用一个I3里存放

              第三步:显示结果

                                               

                                                      结 果 图

                                               

                                                     结果直方图

               在后面还有直方图均衡化、全局、局部等基于像素的操作方法,待我慢慢道来

    展开全文
  • 图像增强技术

    千次阅读 2018-08-27 10:52:20
    一、空域内的图像增强 空域内的图像增强就是调整灰度图像的明暗对比度,是对图像中各个像素的灰度值直接进行处理。常用的方法包括灰度变换增强和直方图增强。下面分别进行介绍。 1. 灰度变换增强 灰度变换增强是...

    一、空域内的图像增强

    空域内的图像增强就是调整灰度图像的明暗对比度,是对图像中各个像素的灰度值直接进行处理。常用的方法包括灰度变换增强和直方图增强。下面分别进行介绍。

    1. 灰度变换增强

    灰度变换增强是在空间域内对图像进行增强的一种简单而有效的方法。灰度变换增强不改变原图像中像素的位置,只改变像素点的灰度值,并逐点进行,和周围的其他像素点无关。为了进行灰度变换,首先需要获取图像的直方图。在MATLAB中,可以通过编写程序获取灰度图像的直方图,也可以通过函数imhist( )获取灰度图像的直方图。

    2. 直方图增强

    图像的灰度直方图表示灰度图像中具有每种灰度的像素的个数,反映了图像中每种灰度级出现的频率,是图像的基本统计特征之一。直方图均衡方法因为其有效性和简单性己成为图像对比度增强的最常用方法。其基本思想是根据输入图像的灰度概率分布来确定其对应的输出灰度值,通过扩展图像的动态范围达到提升图像对比度的目的。

    直方图增强是以概率论为基础,常用的直方图调整方法包括直方图均衡化和直方图规定化两方面。

    3.图像的标准差

    对于向量,其中,其标准差为:

    其中,该向量的长度为n

    MATLAB软件中,采用函数std( )计算向量的标准差,通过函数std2( )计算矩阵的标准差。灰度图像的像素为二维矩阵A,则该图像的标准差为std2(A)。函数std( )和函数std2( )的详细使用情况,读者可以查阅MATLAB的帮助系统。

    4.图像的相关系数

    灰度图像的像素为二维矩阵。两个大小相等的二维矩阵,可以计算其相关系数,其公式如下:

    其中和为大小为mn列的灰度图像,为mean2(A),为mean2(B)

    5.图像的等高线

    MATLAB软件中,通过函数imcontour( )可以绘制灰度图像的等高线。该函数的简单调用格式为:

    imcontour(I):该函数中I为灰度图像的二维数据矩阵,绘制灰度图像的等高线。

    imcontour(I, n):该函数设置等高线的条数为n,如果不指定n,该函数会自动选取n

    6.空域滤波

    空域滤波是空域图像增强的常用方法。空域滤波是对图像中每个像素为中心的邻域进行一系列的运算,然后将得到的结果代替原来的像素值。空域滤波分为线性空域滤波和非线性空域滤波。下面分别进行介绍。

     

    线性空域滤波:

    线性平均滤波是一种最常用的线性空域滤波。线性平均滤波实际是一种低通滤波,信号的低频部分通过,阻止高频部分通过。由于图像的边缘处于高频部分,因此线性平均滤波后,会造成图像边缘的模糊。

    在进行线性平均滤波时,常用的模板大小为3×3,如下所示:

    对应的函数表达式为:

     

    非线性空域滤波:

    非线性空域滤波主要包括中值滤波、顺序统计滤波和自适应滤波等。中值滤波是一种保护边缘的非线性图像平滑方法,在图像增强中应用非常广泛。下面首先介绍一维中值滤波。对于一维数据,按照从大到小的顺序进行排列,则:

    二维中值滤波用于图像的增强。中值滤波可以去除图像中的椒盐噪声,平滑效果优于均值滤波,在抑制噪声的同时还能够保持图像的边缘清晰。在MATLAB软件中,采用函数medfilt2( )进行图像的二维中值滤波。

    二、频域滤波

    频率域图像增强首先通过傅立叶变换将图像从空间域转换为频率域,然后在频率域内对图像进行处理,最后通过傅立叶反变换转换到空间域。频率域内的图像增强通常包括低通滤波、高通滤波和同态滤波等。

    为原始图像函数, 为滤波器脉冲响应函数,则空域内的滤波是基于卷积运算的,如下所示

    其中 可以是低通或高通滤波, 为空域滤波的输出图像函数。根据卷积定理,上式的傅立叶变换如下:

    1.低通滤波

    低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频中的噪声。所以低通滤波的效果是图像的去噪声平滑增强,但同时也抑制了图像的边界,造成图像不同程度上的模糊。对于大小为的图像,频率点与频域中心的距离为,其表达式为:

    2.高通滤波

    衰减或抑制低频分量,让高频分量通过称为高通滤波,其作用是使图像得到锐化处理,突出图像的边界。经理想高频滤波后的图像把信息丰富的低频去掉了,丢失了许多必要的信息。一般情况下,高通滤波对噪声没有任何抑制作用,若简单的使用高通滤波,图像质量可能由于噪声严重而难以达到满意的改善效果。为了既加强图像的细节又抑制噪声,可采用高频加强滤波。这种滤波器实际上是由一个高通滤波器和一个全通滤波器构成的,这样便能在高通滤波的基础上保留低频信息。

    3.带阻滤波器

    带阻滤波器是用来抑制距离频域中心一定距离的一个圆环区域的频率,可以用来消除一定频率范围的周期噪声。带阻滤波器包括理想带阻滤波器、巴特沃斯带阻滤波器和高斯带阻滤波器。

    同态滤波

    展开全文
  • 图像增强

    万次阅读 多人点赞 2018-07-31 10:20:27
    我们还需要利用图像增强技术,对图像进行进一步处理,以得到更好的特征和视觉效果。 图像增强:  一般的图像增强方法根据增强处理过程所在的空间不同,可分为基于空域和频域的方法。基于空域的方法直接对图像进行...

        虽然随着工业相机设备技术的发展,各种型号的工业相机层出不穷。相机的分辨率、曝光时间等性能都有了极大改善。但,工业环境复杂,导致常常得到的目标图像并不是非常理想。我们还需要利用图像增强技术,对图像进行进一步处理,以得到更好的特征和视觉效果。

    图像增强:

        一般的图像增强方法根据增强处理过程所在的空间不同,可分为基于空域和频域的方法。基于空域的方法直接对图像进行处理;基于频域的方法是在图像的某种变换域内对图像的变换系数进行修正,然后再反变换到原来的空域,得到增强的图像。

        主要目的:一、是为了改善图像的视觉效果,提高图像的清晰度;

                        二、是针对给定图像的应用场合,突出某些感兴趣的特征,抑制不感兴趣的特征,以扩大图像中不同物体特征之间的差别,满足某些特殊分析的需要。

    基于空间域的图像增强:直接作用于图像像素的增强方法。

    1、灰度变换增强

        灰度变换主要针对独立的像素点进行处理,由输入像素点的灰度值决定相应的输出像素点的灰度值,通过改变原始图像数据所占的灰度范围而使图像在视觉上得到改善。

    1.1 线性灰度增强

        线性灰度增强,将图像中所有点的灰度按照线性灰度变换函数进行变换。在曝光不足或过度的情况下,图像的灰度可能局限在一个很小的灰度范围内,这时图像可能会很模糊不清。利用一个线性单值函数对图像内的每一个像素做线性拓展,将会有效地改善图像的视觉效果。

        基本原理:假设一幅图像f(x,y)变换前的的灰度范围是[a, b],希望变换后g(x,y)灰度范围拓展或者压缩至[c, d],则灰度线性变换函数表达式为:

     

                                     

        通过调整a,b,c,d,的值可以控制线性变换函数的斜率,从而达到灰度范围的拓展或压缩。

    1.2 分段线性灰度增强

        分段线性灰度增强可将需要的图像细节灰度级扩展,增强对比度,将不需要的图像细节灰度级压缩。

        基本原理:假设输入图像f(x,y)的灰度为0~M级,增强后图像g(x,y)的灰度级0~N级,区间[a,  b]、[c,d]分别为源图像和增强图像的某一灰度区间。分段线性变换函数为:

                                    

        a,b,c,d取不同的值时,可得到不同的效果。

    (1)若a=c,b=d,灰度变换函数为一条斜率为1的直线,增强图像与源图像相同;

    (2)若a>c,b<d,源图像中灰度值在区间[0,a]与[b,M]中的动态范围减小,而源图像在区间[a,b]间的动态范围增加,从而增强中间范围的对比度。

    (3)若a<c,b>d, 则源图像在区间[0,a]与[b,M]的动态范围增加,而源图像在区间[a,b]间的动态范围减小。

    由此可见,通过调整a,b,c,d,可以控制分段的斜率,从而对任意灰度区间进行拓展或者压缩。

    1.3 非线性灰度增强

        显而易见,当用非线性函数对图像灰度进行映射时,可以实现图像的非线性灰度增强。

        基本原理:常用的非线性灰度增强方法有对数函数非线性变换和指数函数非线性变换。

    (1)对数函数非线性变换

        对图像做对数非线性变换时,变换函数为:

                                                         

        通过调整a,b,c,可以调整曲线的位置与形状。利用此变换,可以使输入图像的低灰度范围得到扩展,高灰度范围得到压缩,以使图像分布均匀。

    (2)指数函数非线性变换

        对图像做指数函数非线性变换时,变换函数为:

                                                  

        通过调整a,b,c,可以调整曲线的位置与形状。利用此变换,可以使输入图像的低灰度范围得到扩展,高灰度范围得到压缩,以使图像分布均匀。

    2、直方图增强

        图像直方图描述了一幅图像的灰度级分布情况,我们从图像的灰度级的分布形态可以提供图像信息的很多特征。因此,我们通过改变图像的直方图的形态也就是改变图像的对比度了。常用的方法有直方图均衡化和直方图规定化。

        在进行直方图相关操作之前,我们肯定得知道直方图长什么样,也就是直方图统计。从数学上理解,图像直方图实际就是图像各灰度值统计特性与图像灰度值之间的函数关系,它统计的是一幅图像中各个灰度级出现的次数或者概率。从图形上说,它是一个二维图,用横坐标表示各个像素点的灰度级r;纵坐标表示对应灰度级的像素个数或者概率:

                                    

    算法实现步骤:

        (1)获取源图像的宽和高;

        (2)逐行扫描图像的像素点,并进行灰度统计;

        (3)计算各个灰度级的概率密度。

    2.1 直方图均衡化    

    2.2 直方图规定化

    3、图像平滑   

    3.1 线性滤波(Linear filter

    3.1.1 均值滤波(Simplebluring

    均值滤波实际上就是用均值替代原图像中的各个像素值。

    均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来(目标核的)像素值。对噪声图像特别是有大的孤立点的图像非常敏感,即使有极少数量点存在较大差异也会导致平均值的明显波动。

    原理分析:K为模板)

                                    

     处理后的目标点像素值 , M=Kw*kh

    OpencvAPI介绍:(一般模板选择3*35*5的)

    blur(Matsrc, Mat dst, Size(xradius, yradius), Point(-1,-1));

    //括号内依次含义:原图;处理图;size表内核的大小,Size3,3)就表示3x3的核大小;Point类型的anchor,表示锚点(即被平滑的那个点),

                             

    插曲:

    空间滤波技术分类

          一、根据空间滤波增强目的可分为:平滑滤波和锐化滤波;

             二、根据空间滤波的特点可分为:线性滤波和非线性滤波。

    (1)平滑滤波,能减弱或消除图像中的高频分量,但不影响低频分量。因为高频分量对应图像中的区域边缘等灰度值具有较大、较快变化的部分,平滑滤波将这些分量绿区可减少局部灰度的起伏,使图像变得比较平滑。实际应用中,平滑滤波即可以用来消除噪声,又可以用在提取较大的目标前过滤去除较小的细节或将目标内的小间断连接起来。

    (2)锐化滤波,能减弱或消除图像中的低频分量,但不影响高频分量。因为低频分量对应图像中灰度值缓慢变化的区域,因而与图像的整体特性如整体对比度和平均灰度值等有关。锐化滤波将这些分量滤去可使图像反差增加,边缘明显。实际应用中,锐化滤波可用于增强图像中被模糊的细节或景物的边缘。

    实验结果

    (原图含有椒盐噪声)                                (均值滤波效果图)

     

     

    分析:因为椒盐的幅值基本都是相同的,只是出现噪声点的位置是随机的,所以在统计意义下的噪声均值也不为0,因此,即使在理想情况下也无法完全去除。但从模板的含义来理解,经过均值滤波处理后,噪声部分被弱化到周围的像素点上,所以结果图上,噪声幅值减小但噪声点的颗粒面积同时变大。

    缺点(shortcoming):在降低噪声的同时使图像变得模糊,特别是在景物的边缘和细节处,模板越大,虽然噪声的抑制效果越好,但同时画面的模糊越严重。

     

    3.1.2高斯滤波(Gaussianbluring)(低通滤波器)

    高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。

    高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。进行高斯滤波的通常原因是真实图像在空间内的像素是缓慢变化的,因此临近点的像素变化不会很明显,但是随机的两个点就可能形成很大的像素差。正是基于这一点,高斯滤波在保留信号的条件下减少噪声。遗憾的是,这种方法在接近边缘处就无效了,因此高斯滤波会破平边缘。但是,高斯平滑滤波器对于抑制服从正态分布的噪声仍然是非常有效的。

     

    高斯函数

                                    

     

    二维高斯:

                                    

     

    Opencv里面API介绍:

     GaussianBlur(Matsrc, Mat dst, Size(11, 11), sigmax, sigmay);其中Size(x, y), x, y 必须是正数而且是奇数

    //GaussianBlur(const Mat& src, Mat& dst, Sizex,y,double sigmaX, double sigmaY=0,intborderType=BORDER_DEFAULT (一般默认));

    //srcdst当然分别是输入图像和输出图像;size为高斯滤波器模板大小;sigmaXsigmaY分别为高斯滤波在横线和竖向的滤波系数;borderType为边缘点插值类型。

    实验结果:

    (含有高斯噪声)                                     (高斯滤波效果图)

          

    (含有椒盐噪声)                                (高斯滤波效果图)

            

     

    分析:高斯滤波对于椒盐噪声和高斯噪声都有明显的抑制作用,但高斯滤波对于椒盐噪声的抑制效果更好。一般在不知道噪声类型的情况下都选择高斯滤波。

    3.2非线性滤波(Nonlinear filtering)

    3.2.1中值滤波(Medianbluring)

    中值滤波法是一种基于排序统计理论的一种能有效抑制噪声的非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值,也就是将中心像素的值用所有像素值的中间值(不是平均值)替换。中值滤波通过选择中间值避免图像孤立噪声点的影响,对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。此外,中值滤波的算法比较简单,也易于用硬件实现。所以,中值滤波方法一经提出后,便在数字信号处理领得到重要的应用。

        原理:

                                 

        其中,f(x,y),g(x,y)分别为原图像和处理后的图像,W为模板,通常为3*3、5*5区域,也可以有不同的形状,如线形、圆形、十字形、圆环形等。

    Opencv里面API介绍:

    medianBlur(Matsrc, Mat dest, ksize)

    //srcdst当然分别是输入图像和输出图像。ksize为均值滤波器模板大小

    实验结果:

    含有椒盐噪声)                                       (中值滤波效果图)

            

    含有高斯噪声)                                      (中值滤波效果图

          

     

    分析:结果图显示知,中值滤波对于噪声具有抑制作用,而且对于椒盐噪声,中值滤波具有很好的降噪性。但会损失一定的图像清晰度。 

    3.2.2双边滤波(BilateralFiltering)

    双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点。双边滤波能够提供一种不会将边缘平滑掉的方法,但作为代价,需要更多的处理时间。与高斯滤波类似,双边滤波会依据每个像素及其领域构造一个加权平均值,加权计算包括两个部分,其中第一部分加权方式与高斯平滑中相同,第二部分也属于高斯加权,但不是基于中心像素点与其他像素点的空间距离之上的加权,而是基于其他像素与中心像素的亮度差值的加权。可以将双边滤波视为高斯平滑,对相似的像素赋予较高的权重,不相似的像素赋予较小的权重,也可用于图像分割之中。

    双边滤波器的好处是可以做边缘保存(edge preserving),一般过去用的维纳滤波或者高斯滤波去降噪,都会较明显地模糊边缘,对于高频细节的保护效果并不明显。双边滤波器顾名思义比高斯滤波多了一个高斯方差sigmad,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波。

    原理:

              

    Opencv里面的API介绍:

    双边模糊bilateralFilter(src,dest, d=15, 150, 3);

    - 15 –计算的半径,半径之内的像数都会被纳入计算,如果提供-1 则根据sigma space参数取值

            -150 – sigma color 决定多少差值之内的像素会被计算

           - 3 – sigma space 如果d的值大于0则声明无效,否则根据它来计算d值

    //srcdst当然分别是输入图像和输出图像。d为每个像素领域的直径,sigmaColor为颜色空间的标准偏差,sigmaSpace为坐标空间的标准偏差。borderType为边缘点插值类型。

     实验结果:(原图含有高斯噪声)

               (均值滤波)                                                 (高斯滤波

        

                 (中值滤波)                                    (双边高斯滤波

       

    分析:均值模糊无法克服边缘像素信息丢失缺陷。原因是均值滤波是基于平均权重;

    高斯模糊部分克服了该缺陷,但是无法完全避免,因为没有考虑像素值的不同;

    中值模糊,虽然抑制噪声算法比均值滤波略为复杂,但保持画面清晰度的效果更好;

     高斯双边模糊是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变。

    4、图像锐化

     

    几种常见的卷积算子

    (Robert 算子)

                        

    (Sobel 算子)

                        

     (Laplance算子)

                            

    3.1 sobel算子

    Sobel 算子是一个离散微分算子(discrete differentiation operator)。 它结合了高斯平滑和微分求导,用来计算图像灰度函数的近似梯度。用于图像处理和计算机视觉,特别是在边缘检测算法中,它可以创建强调边缘的图像。它以斯坦福人工智能实验室(SAIL)的同事Irwin Sobel和GaryFeldman命名。 Sobel和Feldman在1968年SAIL的演讲中提出了“各向同性3x3图像梯度算子”的概念。从技术上讲,它是一个离散微分算子,计算图像强度函数梯度的近似值。在图像中的每一点,Sobel-Feldman算子的结果是相应的梯度向量或该向量的范数。Sobel-Feldman算子基于将图像与水平和垂直方向上的小的可分离的整数值滤波器进行卷积,因此在计算方面相对简便。另一方面,它产生的梯度近似相对粗糙,特别是对于图像中的高频变化。

    图像边缘, 边缘就是灰度值变化剧烈的地方。表示这一改变的一个方法是使用导数。是像素值发生跃迁的地方,是图像的显著特征之一,在图像特征提取、对象检测、模式识别等方面都有重要的作用。梯度值的大变预示着图像中内容的显著变化。用更加形象的图像来解释,假设我们有一张一维图形。下图2中灰度值的”跃升”表示边缘的存在,图3中使用一阶微分求导我们可以更加清晰的看到边缘”跃升”的存在。

           

           图1、 Lena                               图2、像素一维图形    

                    

                                 图 3、一阶导数

    具体是采用卷积的计算方法实现的。假设被作用的图像为  ,在两个方向上求导:

    水平变化求导:将   与一个奇数大小的内核   进行卷积。比如,当内核大小为3时,   的计算结果为图4a:

                                                

    垂直变化求导:将 I 与一个奇数大小的内核   进行卷积。比如,当内核大小为3时,   的计算结果为图4b:

                                                

    在图像的每一点,结合以上两个结果求出近似 梯度 ,如图4c:

    也可简化为:

    l 求取导数的近似值,kernel=3时不是很准确,OpenCV使用改进版本Scharr函数,算子如下:

                                      

    Opencv里面API介绍:

    cv::Sobel (

    InputArray Src // 输入图像

    OutputArray dst// 输出图像,大小与输入图像一致

    int depth // 输出图像深度.

    Int dx  // X方向,几阶导数

    int dy // Y方向,几阶导数

    int ksize, SOBEL算子kernel大小,必须是1、3、5、7、

    double scale  = 1

    double delta = 0

    int borderType =BORDER_DEFAULT)

     

    cv::Scharr (

    InputArray Src // 输入图像

    OutputArray dst// 输出图像,大小与输入图像一致

    int depth // 输出图像深度.

    Int dx.  // X方向,几阶导数

    int dy // Y方向,几阶导数.

    double scale  = 1

    double delta = 0

    int borderType =BORDER_DEFAULT)

    实验效果图:                    (原图)

                    

                (x方向的梯度变化)                                       (y方向的梯度变化)

             

                                         (sobel算子检测的边缘)

                    

                (x方向的梯度变化)                                       (y方向的梯度变化)

              

                                             (scharr算子检测的边缘)

                    

    分析:由实验图像可以明显的看出,scharr算子比sobel算子更加能突显图像的边缘细节,效果比sobel更好。

    3.2 Laplace算子

    拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义为:

                                    

    其中,

                                     

    为了更适合于数字图像处理,将该方程表示为离散形式: 

                    

             另外,拉普拉斯算子还可以表示成模板的形式,如图5-9所示。图5-9(a)表示离散拉普拉斯算子的模板,图5-9(b)表示其扩展模板,图5-9(c)则分别表示其他两种拉普拉斯的实现模板。从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。但此算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中的孤立点、孤立线或线端点为目的的场合。同梯度算子一样,拉普拉斯算子也会增强图像中的噪声,有时用拉普拉斯算子进行边缘检测时,可将图像先进行平滑处理。

                                

    图像锐化处理的作用是使灰度反差增强,从而使模糊图像变得更加清晰。图像模糊的实质就是图像受到平均运算或积分运算,因此可以对图像进行逆运算,如微分运算能够突出图像细节,使图像变得更为清晰。由于拉普拉斯是一种微分算子,它的应用可增强图像中灰度突变的区域,减弱灰度的缓慢变化区域。因此,锐化处理可选择拉普拉斯算子对原图像进行处理,产生描述灰度突变的图像,再将拉普拉斯图像与原始图像叠加而产生锐化图像。拉普拉斯锐化的基本方法可以由下式表示:

    这种简单的锐化方法既可以产生拉普拉斯锐化处理的效果,同时又能保留背景信息,将原始图像叠加到拉普拉斯变换的处理结果中去,可以使图像中的各灰度值得到保留,使灰度突变处的对比度得到增强,最终结果是在保留图像背景的前提下,突现出图像中小的细节信息。

    Opencv里面API的介绍:

    处理的步骤:

    1、 高斯模糊 – 去噪声GaussianBlur()

    2、转换为灰度图像cvtColor()

    3、拉普拉斯 – 二阶导数计算Laplacian()

    4、 取绝对值convertScaleAbs()

    5、显示结果

    cv::Laplacian(

    InputArray src,

    OutputArray dst,

    int depth, //深度CV_16S

    int kisze, // 3

    double scale = 1,

    double delta =0.0,

    int borderType = 4)

     

    实验效果图:                                  (原图)

                

                                         (laplace算子锐化后的效果)

                

    分析:通过laplace算子可以在保留背景信息的同时,将图像像素发生变化的地方,进行锐化突出,显示更多图像小的细节信息。

     

     

    3.2 Canny算子

    Canny算子与MarrLoG)边缘检测方法类似(Marr大爷号称计算机视觉之父),也属于是先平滑后求导数的方法。John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标:

    好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘点的概率要低;

    高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;

    对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假响应边缘应该得到最大抑制。

    Canny法就是基于满足这3个指标的最优解实现的,在对图像中物体边缘敏感性的同时,也可以抑制或消除噪声的影响。

    Canny算子求边缘点具体算法步骤如下:

    1. 用高斯滤波器平滑图像.

    2. 用一阶偏导有限差分计算梯度幅值和方向

    3. 对梯度幅值进行非极大值抑制

    4. 用双阈值算法检测和连接边缘.

    (1)灰度化和去噪

             Canny算法通常处理的都是灰度图像,因此先把图像转变为灰度图像。

    高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,特别是对抑制或消除服从正态分布的噪声非常有效。滤波可以消除或降低图像中噪声的影响,使用高斯滤波器主要是基于在滤波降噪的同时也可以最大限度保留边缘信息的考虑。

    (2)用一阶偏导的有限差分来计算梯度的幅值和方向。

        高斯模糊的目的主要为了整体降低图像噪声,目的是为了更准确计算图像梯度及边缘计算梯度值和方向,幅值。计算图像梯度可以选择算子有Robot算子、Sobel算子、Prewitt算子等。

    图像灰度值的梯度一般使用一阶有限差分来进行近似,这样就可以得图像在x和y方向上偏导数的两个矩阵。

                                           

    这里采用更加简单明了的2x2的算子,其数学表达如下:

                                  

    (3)对梯度幅值进行非极大值抑制。

             非极大值抑制是进行边缘检测的一个重要步骤,通俗意义上是指寻找像素点局部最大值。沿着梯度方向,比较它前面和后面的梯度值进行了。

                                

                            

    (4)用双阈值算法检测和连接边缘。

       非最大信号抑制以后,输出的幅值如果直接显示结果可能会少量的非边缘像素被包

    含到结果中,所以要通过选取阈值进行取舍,传统的基于一个阈值的方法如果选择的阈值较小起不到过滤非边缘的作用,如果选择的阈值过大容易丢失真正的图像边缘,Canny提出基于双阈值(Fuzzy threshold)方法很好的实现了边缘选取,在实际应用中双阈值还有边缘连接的作用。双阈值选择与边缘连接方法通过假设两个阈值其中一个为高阈值TH另外一个为低阈值TL则有

    a.对于任意边缘像素低于TL的则丢弃

    b.对于任意边缘像素高于TH的则保留

    c.对于任意边缘像素值在TL与TH之间的,如果能通过边缘连接到一个像素大于TH而且边缘所有像素大于最小阈值TL的则保留,否则丢弃。

     

    Opencv里面API介绍:

             Canny算法介绍 – 五步

    1.    高斯模糊 - GaussianBlur

    2.    灰度转换 - cvtColor

    3.    计算梯度 – Sobel/Scharr

    4.    非最大信号抑制

    5.    高低阈值输出二值图像

    API – cv::Canny(

    InputArraysrc, // 8-bit的输入图像

    OutputArrayedges,// 输出边缘图像, 一般都是二值图像,背景是黑色

    doublethreshold1,// 低阈值,常取高阈值的1/2或者1/3

    doublethreshold2,// 高阈值

    intaptertureSize,// Soble算子的size,通常3x3,取值3

    boolL2gradient // 选择 true表示是L2来归一化,否则用L1归一化)

    实验效果图:                              (原图)

                    

                                 (canny算子检测边缘结果)

                    

    分析:由结果图看出,通过canny算子检测得到的图像边缘确实效果很好,基本上能过很好的体现图像的边缘信息。

     

    *5、频率域增强

     

        低通滤波,高通滤波,带阻滤波,同态滤波;

    *6、彩色增强

        真彩色增强,假彩色增强,伪彩色增强;

     

        

    展开全文
  • OpenCV--Python 图像增强

    万次阅读 多人点赞 2020-07-27 11:13:15
    图像增强主要解决由于图像的灰度级范围较小造成的对比度较低的问题,目的就是将输出图像的灰度级放大到指定的程度,使得图像中的细节看起来增加清晰。对比度增强有几种常用的方法,如线性变换、分段线性变换、伽马...
  • 关于图像增强必须清楚的基本概念 1.图像增强的目的: 1)改善图像的视觉效果, 2)转换为更适合于人或机器分析处理的形式 3)突出对人或机器分析有意义的信息 4)抑制无用信息,提高图像的使用价值 5)增强后...
  • 图像增强-点处理方法总结

    千次阅读 2019-02-25 11:05:37
    图像增强的方法、策略、处理对象如下: 前几篇文章都是针对某一点像素操作的,属于时域分析中的点处理; 线性操作------可用于两图像的线性混合或ROI区域混合,addWeighted函数。 图像平均------减少图像噪声的...
  • 本篇博文用于总结常见的图像增强方式,其中包括传统方法以及深度学习方法,并附有相应的实现代码。
  • 图像增强简介

    2020-10-07 00:50:44
    点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达数字图像的诞生并不是与计算机的发展完全相关,第一次世界大战结束后的第二年,数字图像被发明并用于报纸行...
  • (4)图像增强- Part1. 对比度增强

    千次阅读 2019-06-03 17:43:03
    本章主要总结了图像增强技术中的点处理技术,包括灰度直方图的获取、直方图均衡化、直方图规范化和对比度调整等内容。C++和Python语言环境下,使用OpenCV工具实现上述图像增强操作。 OpenCV 简介: 1、OpenCV的...
  • 常见的图像增强方法

    万次阅读 2012-06-01 22:12:35
    这两种方式的实质是对感兴趣的图像区域进行展宽,对不感兴趣的背景区域进行压缩,从而达到图像增强的效果 3.  直方图均衡化 将原始图像的直方图通过积分概率密度函数转化为概率密度为1(理想情况)的图像,从
  • 基于直方图的图像增强算法(HE、CLAHE)之(一)

    万次阅读 多人点赞 2020-04-17 03:20:56
    例如,图像增强中利用直方图来调整图像的对比度、有人利用直方图来进行大规模无损数据隐藏、还有人利用梯度直方图HOG来构建图像特征进而实现目标检测。本节我们就来讨论重要的直方图均衡化算法,说它重要是因为以此...
  • 小波变换下的图像对比度增强技术实质上是通过小波变换把图像信号分解成不同子带,针对不同子带应用不同的算法来增强不同频率范围内的图像分量,突出不同尺度下的近似和细节,从而达到增强图像层次感的目的。...
  • halcon图像预处理之图像增强

    万次阅读 2018-09-20 20:44:40
    图像增强一般通过如下几种方式: 1. 灰度值线性变换 scale_image: g’ := g * Mult + Add g为当前的灰度值,Mult 为所乘的系数,Add为加的偏移值,由公式可以看出用scale_image来处理图像是个线性变化,会让黑的...
  • 图像增强与图像恢复

    万次阅读 2011-08-11 11:02:49
    在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原   图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的...
  • 基于MATLAB的图像增强

    万次阅读 多人点赞 2015-11-21 20:00:45
    本文主要讲解了图像增强中的灰度变换和直方图处理的基本方法,并基于MATLAB平台,给出了各自的处理效果图。灰度变换通过对原图像素重新分配实现,目的是使图像中表现较暗的像素值增大,这样图像的亮度就提高了。直方...
  • 用于图像去雾的优化对比度增强算法

    万次阅读 多人点赞 2020-04-17 03:21:47
    今天我们来介绍一篇由韩国学者所发表的研究论文《用于图像去雾的优化对比度增强算法》,作者提出一种基于四叉树划分的求解大气光估计的方法,同时提出了兼顾对比度和信息损失的图像去雾新思路,非常值得参考
  • 低照度图像增强

    千次阅读 热门讨论 2015-05-24 18:08:20
    最近在做图像增强时,发现一种简单、有效的低照度图像增强方法,仅用了几次简单的图层混合操作,没有复杂的公式和计算过程,但效果还可以,同时对逆光拍摄的图像,也有较好的增强效果。  如果修改...
  • 1. 基于直方图均衡化的图像增强 直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强...
  • 深度学习之图像数据增强

    千次阅读 2018-05-24 12:00:30
    更好的提取图像特征,泛化模型(防止模型过拟合),一般都会对数据图像进行数据增强,数据增强,常用的方式,就是旋转图像,剪切图像,改变图像色差,扭曲图像特征,改变图像尺寸大小,增强图像噪音(一般使用高斯...
1 2 3 4 5 ... 20
收藏数 113,685
精华内容 45,474
关键字:

图像增强