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

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

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

    图像增强:

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

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

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

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

    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、彩色增强

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

     

        

    展开全文
  • 前面时间因为一些事没更新,国庆节本猿终于有时间闲下来写点文章了。下面就是正文:经图像信息输入系统...图像增强不会考虑引起图像质量下降的原因,而是将图像中感兴趣的特征有选择地突出,并衰减不需要的特征。图...
    913462195b0312bf009d8d4527805acc.png点击上方蓝色字体,关注我们!913462195b0312bf009d8d4527805acc.png6463713c511419905833b98e7a6d7291.png

    前面时间因为一些事没更新,国庆节本猿终于有时间闲下来写点文章了。下面就是正文:

    经图像信息输入系统获取的原图像中通常都含有各种各样的噪声和畸变,大大影响了图像的质量。

    因此,在对图像进行分析之前,必须先对图像质量进行改善。通常,采用图像增强的方法对图像质量进行改善。

    图像增强不会考虑引起图像质量下降的原因,而是将图像中感兴趣的特征有选择地突出,并衰减不需要的特征。图像增强的目的是为了改善图像的视觉效果,提高图像的清晰度和工艺的适应性,以及便于人与计算机的分析主处理,以满足图像复制或再现的要求。

    图像增强的方法分为空域法和频域法两类。

    1.频域法就是我们前面讲的在图像的某个变换域内对整个图像进行操作,对图像进行滤波等处理,并修改变换后的系数,如傅里叶变换、DCT变换等的系数,然后再进行反变换,便可得到处理后的图像。

    2.空域法就是我们前面讲的对图像中的各个像素点进行操作,这就是这部分我们要讲述的内容。

    灰度变换增强基础

    我们先介绍一些灰度变换增强的基础知识

    1像素的选择函数

    impixel 函数,作用是获取图像的像素值,基本语法如下:

    p=impixel(I)    用鼠标在图像上选取所点击图像处的像素值
    p=impixel(I,c,r); c r表示指定位置的索取像素的位置

    当在脚本编辑器中输入以下内容并运行时

    I=imread('mm.jpg');
    p=impixel(I)

    我们注意到,在显示的图像上,鼠标的图标会变成空心十字,当我们去点击图像上的某一个像素点,选择完毕后按enter键,函数将会返回被选图像的函数数据,如下:

    p =
    72 24 22
    2线段上像素分布的绘制

    同样的 improfile  函数的作用是创建图像强度曲线 ,基本语法如下:

      c=improfile(n)    在当前图像上,使用鼠标进行选择n个像素点,按enter键可以返回像素的强度曲线
    c=improfile(I,xi yi) 创建指定线段的像素强速曲线,向量xi yi指定线段的端点
    [cx cy c]=improfiel(I,)返回鼠标指定线段上的像素点坐标以及像素值

    运行如下代码:

    I=imread('a1.jpg');
    imshow(I)
    improfile

    待鼠标变为十字之后,选择一个线段端点,延长直线,选择另一个线段端点,按enter键,即可生成线段灰度值的分布图。

    89566cbc4fbcef647c3c16a2d5758e1d.png

    3图像等高线

    我们用imcontour函数来显示图像的等高线。

    运行如下代码

    J = imread('ll.png');
    I=rgb2gray(J);
    imshow(I)
    figure;
    imcontour(I);

    下面是原图和效果

    934552a472c818b4b479f98a59ad28e0.png

    271ba5f5d1e33ee8df372954150869cd.png

    需要注意的是,imcontour函数处理的对象需要先转化为二维的灰度图,再求等高线图。

    4统计概要

    此外 ,还可以使用图像处理工具箱中的mean2O函数、sd20函数和 cor20数,对图像的标准统计特性进行计算。

    mean2:计算矩阵元素的平均值

    std2:计算矩阵的标准偏差

    corr2:计算两个矩阵的相关系数

    这几个函数就留给大家自行学习,再发一下matlab官网网址,输入对应的函数,就可以直接进行学习了。

    b0abf24bac9a6cf17aa0f1b698b8b2b7.png

    参考链接在文末哦!!

    直接灰度变换1灰度线性变换

    f33a3c639b0b11296b4b71182d52f9ec.png

    程序示例:

    J=imread('F.jpg');
    I=rgb2gray(J);
    colormap;imshow(I);
    H=imadjust(I,[0 1],[1 0],1.5); %设置图像倒置参数
    figure;subimage(H) %显示倒置后的图像

    2908b56c9a8a83243c81d43527c5a5e7.png

    原图像的灰度图

    8184b97e65abfad6ec2e9f83f2b8cb69.png

    灰度倒置后的图像

    本文参考链接:

    https://link.zhihu.com/?target=https%3A//ww2.mathworks.cn/

    今天分享就到这啦!

    大家可以关注本公众号或者加入下面的MATLAB学习交流群(MATLAB和数学建模资料):

    953314432

    往期推荐d711537288714c88d8ad8861fa0f5bbf.png

    matlab符号微积分及应用举例

    24eb8dd81572204ffc3ffb49c065c688.png

    数学建模入门篇(新手必看)!

    466b298391780f59f3f198055996c4f0.png

    matlab符号对象

    91032a5f29d82d756ca8a4e9d91f1fce.png9176425f41a41d6a1e364907c36dbad6.png扫码关注我们2251bc49da4fa3fd1b4c8b12bba23b91.png在看点一下
    展开全文
  • matlab图像复原和图像增强技术

    千人学习 2019-03-19 10:36:47
    系统的学习和掌握matlab图像复原和图像增强技术
  • 点击上方“新机器视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达图像增强是图像模式识别中非常重要的图像预处理过程。图像增强的目的是通过对图像中的信息进行处理,使得有利于模式识别的信息得到增强,不...

    点击上方新机器视觉”,选择加"星标"或“置顶”

    重磅干货,第一时间送达

    e6e12be1d5708abd21ae843728fc42fb.png

    图像增强是图像模式识别中非常重要的图像预处理过程。图像增强的目的是通过对图像中的信息进行处理,使得有利于模式识别的信息得到增强,不利于模式识别的信息被抑制,扩大图像中不同物体特征之间的差别,为图像的信息提取及其识别奠定良好的基础。

    图像增强按实现方法不同可分为点增强、空域增强和频域增强。

    点增强

    点增强主要指图像灰度变换几何变换

    图像的灰度变换也称为点运算、对比度增强或对比度拉伸,它是图像数字化软件和图像显示软件的重要组成部分。灰度变换是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围。一幅输入图像经过灰度变换后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值。灰度变换不会改变图像内的空间关系。

    图像的几何变换是图像处理中的另一种基本变换。它通常包括图像的平移、图像的镜像变换、图像的缩放和图像的旋转。通过图像的几何变换可以实现图像的最基本的坐标变换及缩放功

    能。

    空域增强

    图像的空间信息可以反映图像中物体的位置 、形状、大小等特征,而这些特征可以通过一定的物理模式来描述。例如,物体的边缘轮廓由于灰度值变化剧烈一般出现高频率特征,而一个比较平滑的物体内部由于灰度值比较均一则呈现低频率特征。因此,根据需要可以分别增强图像的高频和低频特征。对图像的高频增强可以突出物体的边缘轮廓,从而起到锐化图像的作用。例如,对于人脸的比对查询,就需要通过高频增强技术来突出五宫的轮廓。相应地,对图像的低频部分进行增强可以对图像进行平滑处理,一般用于图像的噪声消除。

    频域增强

    像的空域增强一般只是对数字图像进行局部增强,而图像的频域增强可以对图像进行全局增强。频域增强技术是在数字图像的频率域空间对图像进行滤波,因此需要将图像从空间域变换到频率域,一般通过傅里叶变换实现。在频率域空间的滤波与空域滤波一样可以通过卷积实现,因此傅里叶变换和和卷积理论是频域滤波技术的基础。

    d0557fc10e1986ef0ba472807cd269b2.gif End d0557fc10e1986ef0ba472807cd269b2.gif

    声明:部分内容来源于网络,仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

    8b1e9dd1e26d21921e05187babcbffab.png

    展开全文
  • 前面时间因为一些事没更像,国庆节本猿终于有时间闲下来写点...图像增强不会考虑引起图像质量下降的原因,而是将图像中感兴趣的特征有选择地突出,并衰减不需要的特征。图像增强的目的是为了改善图像的视觉效果,...

    318c925f03a8b04c712061432a4b6b4e.png

    前面时间因为一些事没更像,国庆节本猿终于有时间闲下来写点文章了。下面就是正文:

    经图像信息输入系统获取的原图像中通常都含有各种各样的噪声和畸变,大大影响了图像的质量。因此,在对图像进行分析之前,必须先对图像质量进行改善。通常,采用图像增强的方法对图像质量进行改善。图像增强不会考虑引起图像质量下降的原因,而是将图像中感兴趣的特征有选择地突出,并衰减不需要的特征。图像增强的目的是为了改善图像的视觉效果,提高图像的清晰度和工艺的适应性,以及便于人与计算机的分析主处理,以满足图像复制或再现的要求。

    图像增强的方法分为空域法和频域法两类。

    1.频域法就是我们前面讲的在图像的某个变换域内对整个图像进行操作,对图像进行滤波等处理,并修改变换后的系数,如傅里叶变换、DCT变换等的系数,然后再进行反变换,便可得到处理后的图像。

    2.空域法就是我们前面讲的对图像中的各个像素点进行操作,这就是这部分我们要讲述的内容。

    一,灰度变换增强基础

    我们先介绍一些灰度变换增强的基础知识

    1.像素的选择函数

    impixel 函数,作用是获取图像的像素值,基本语法如下:

    p=impixel(I)    用鼠标在图像上选取所点击图像处的像素值
    p=impixel(I,c,r);  c r表示指定位置的索取像素的位置 

    当在脚本编辑器中输入以下内容并运行时

    I=imread('mm.jpg');
    p=impixel(I)  

    我们注意到,在显示的图像上,鼠标的图标会变成空心十字,当我们去点击图像上的某一个像素点,选择完毕后按enter键,函数将会返回被选图像的函数数据,如下:

    p =
    
        72    24    22

    2.线段上像素分布的绘制

    同样的 improfile 函数的作用是创建图像强度曲线 ,基本语法如下:

      c=improfile(n)    在当前图像上,使用鼠标进行选择n个像素点,按enter键可以返回像素的强度曲线
    c=improfile(I,xi yi)   创建指定线段的像素强速曲线,向量xi yi指定线段的端点
    [cx cy c]=improfiel(I,)返回鼠标指定线段上的像素点坐标以及像素值

    运行如下代码:

    I=imread('a1.jpg');
    imshow(I) 
    improfile

    待鼠标变为十字之后,选择一个线段端点,延长直线,选择另一个线段端点,按enter键,即可生成线段灰度值的分布图。

    65236e29c857acb0d262e216049948d3.png

    3.图像等高线

    我们用imcontour函数来显示图像的等高线。

    运行如下代码

    J = imread('ll.png');
    I=rgb2gray(J);
    imshow(I)
    figure;
    imcontour(I);

    下面是原图和效果

    fc633abd5dd9b3a9d936bbfe82f09321.png

    03605c96248b2ea8b19c23809f8d5028.png

    需要注意的是,imcontour函数处理的对象需要先转化为二维的灰度图,再求等高线图。

    4.统计概要

    此外 ,还可以使用图像处理工具箱中的mean2O函数、sd20函数和 cor20数,对图像的标准统计特性进行计算。

    mean2:计算矩阵元素的平均值

    std2:计算矩阵的标准偏差

    corr2:计算两个矩阵的相关系数

    这几个函数就留给大家自行学习,再发一下matlab官网网址,输入对应的函数,就可以直接进行学习了。

    af81c55ca2903a3538674b1acb2003be.png
    https://ww2.mathworks.cn/ww2.mathworks.cn

    二,直接灰度变换

    1.灰度线性变换

    5935b7307ad11469eaf0143c41ed73b6.png

    程序示例:

    J=imread('F.jpg');
    I=rgb2gray(J);
    colormap;imshow(I);
    H=imadjust(I,[0 1],[1 0],1.5); %设置图像倒置参数
    figure;subimage(H)  %显示倒置后的图像

    39a74b2844b6ae46d458746d21a447d6.png
    原图像的灰度图

    bd07aaff5b8e1e94733c93904f6006f6.png
    灰度倒置后的图像

    虑及各位的阅读疲劳,今天的更新就到这里,明天会接着更新,感谢诸君厚爱,收藏之前不要忘了点赞哦。

    展开全文
  • AI 前线导读:图像增强是一种非常强大的技术,针对现有图像人为创建各种变化以扩展图像数据集,例如缩放现有图像、将现有图像旋转几度、剪切或裁剪图像等等。在本文中,我们将使用 imgaug 库探索 Python 中的图像...
  • 10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域图像增强10空间域...
  • 图像增强--空间域图像增强

    千次阅读 2017-04-18 18:45:03
    空间域图像增强 注:图像处理学习笔记,仅供参考。 图像增强基础 概述: 图像增强是数字图像处理相对简单但最具艺术系的领域之一。图像增强是指根据特定的需要突出一幅图像中的某些信息,同时,削弱或去除某些不...
  • 图像去雾(二)Retinex图像增强算法

    万次阅读 多人点赞 2019-07-23 14:47:16
    前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强、图像去雾、彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解。 Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,573
精华内容 7,029
关键字:

图像增强