精华内容
下载资源
问答
  • 目的为解决局部带限对比度存在的问题,提出一种对比敏感度下的图像对比度评价方法.方法对低通滤波后的图像进行快速小波分解,然后对各级小波系数进行处理分别得到各级带通滤波图像及其相应低通滤波图像,求出Peli...
  • ),是反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。 对于分类器或者说分类算法,评价指标主要有 precision , recall , F1 score 等,以及这里要讨论的 ROC 和 AUC 。...

    本文转自 http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/

    在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更好地了解分类中的错误。

    比如有这样一个在房子周围可能发现的动物类型的预测,这个预测的三类问题的混淆矩阵如下表所示:

    一个三类问题的混淆矩阵

    利用混淆矩阵可以充分理解分类中的错误了。如果混淆矩阵中的非对角线元素均为0,就会得到一个近乎完美的分类器。

    在接下来的讨论中,将以经典的二分类问题为例,对于多分类类比推断。

    二分类问题在机器学习中是一个很常见的问题,经常会用到。ROC (Receiver Operating Characteristic) 曲线和 AUC (Area Under the Curve) 值常被用来评价一个二值分类器 (binary classifier) 的优劣。之前做医学图像计算机辅助肺结节检测时,在评定模型预测结果时,就用到了ROC和AUC,这里简单介绍一下它们的特点,以及更为深入地,讨论如何作出ROC曲线图和计算AUC值。

    一、医学图像识别二分类问题

    针对一个二分类问题,我们将实例分成正类(positive)和负类(negative)两种。

    例如:在肺结节计算机辅助识别这一问题上,一幅肺部CT图像中有肺结节被认为是阳性(positive),没有肺结节被认为是阴性(negative)。对于部分有肺结节的示意图如下:

    常见肺结节示意图

    所以在实际检测时,就会有如下四种情况:

    (1) 真阳性(True Positive,TP):检测有结节,且实际有结节;正确肯定的匹配数目;
    (2) 假阳性(False Positive,FP):检测有结节,但实际无结节;误报,给出的匹配是不正确的;
    (3) 真阴性(True Negative,TN):检测无结节,且实际无结节;正确拒绝的非匹配数目;
    (4) 假阴性(False Negative,FN):检测无结节,但实际有结节;漏报,没有正确找到的匹配的数目。

    详细图解(原创,转载请标明出处)如下:

    混淆矩阵

    上图中涉及到很多相关概念及参数,详细请见Wiki上的定义及其混淆矩阵

    wiki混淆矩阵

    这里整理肺结节识别中的几个主要参数指标如下:

    Precision=TPTP+FP

    Sensitivity=Recall=TPR=TPTP+FN

    Specificity=TNR=TNFP+TN

    • 假阴性率(False Negatice Rate,FNR),漏诊率( = 1 - 灵敏度):

    FNR=FNTP+FN

    • 假阳性率(False Positice Rate,FPR),误诊率( = 1 - 特异度):

    FPR=FPFP+TN

    LR+=TPRFPR=Sensitivity1Specificity

    LR=FNRTNR=1SensitivitySpecificity

    Youden index=Sensitivity+Specificity1=TPRFPR

    二、ROC曲线

    ROC曲线:接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。

    对于分类器或者说分类算法,评价指标主要有precisionrecallF1 score等,以及这里要讨论的ROCAUC。下图是一个ROC曲线的示例:

    • 横坐标:1-Specificity,伪正类率(False positive rate, FPR),预测为正但实际为负的样本占所有负例样本 的比例;
    • 纵坐标:Sensitivity,真正类率(True positive rate, TPR),预测为正且实际为正的样本占所有正例样本 的比例。

    在一个二分类模型中,假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。

    如下面这幅图,(a)图中实线为ROC曲线,线上每个点对应一个阈值。

    ROC曲线和它相关的比率

    (a) 理想情况下,TPR应该接近1,FPR应该接近0。ROC曲线上的每一个点对应于一个threshold,对于一个分类器,每个threshold下会有一个TPR和FPR。比如Threshold最大时,TP=FP=0,对应于原点;Threshold最小时,TN=FN=0,对应于右上角的点(1,1)。
    (b) P和N得分不作为特征间距离d的一个函数,随着阈值theta增加,TP和FP都增加。

    • 横轴FPR:1-TNR,1-Specificity,FPR越大,预测正类中实际负类越多。
    • 纵轴TPR:Sensitivity(正类覆盖率),TPR越大,预测正类中实际正类越多。
    • 理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。

    随着阈值threshold调整,ROC坐标系里的点如何移动可以参考:

    三、如何画ROC曲线

    对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR结果,而要得到一个曲线,我们实际上需要一系列FPR和TPR的值,这又是如何得到的呢?我们先来看一下Wikipedia上对ROC曲线的定义

    In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied.

    问题在于“as its discrimination threashold is varied”。如何理解这里的“discrimination threashold”呢?我们忽略了分类器的一个重要功能“概率输出”,即表示分类器认为某个样本具有多大的概率属于正样本(或负样本)。通过更深入地了解各个分类器的内部机理,我们总能想办法得到一种概率输出。通常来说,是将一个实数范围通过某个变换映射到(0,1)区间。

    假如我们已经得到了所有样本的概率输出(属于正样本的概率),现在的问题是如何改变“discrimination threashold”?我们根据每个测试样本属于正样本的概率值从大到小排序。下图是一个示例,图中共有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。

    接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:

    当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。

    其实,我们并不一定要得到每个测试样本是正样本的概率值,只要得到这个分类器对该测试样本的“评分值”即可(评分值并不一定在(0,1)区间)。评分越高,表示分类器越肯定地认为这个测试样本是正样本,而且同时使用各个评分值作为threshold。我认为将评分值转化为概率更易于理解一些。

    四、AUC

    AUC值的计算

    AUC (Area Under Curve) 被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围一般在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

    AUC的计算有两种方式,梯形法和ROC AUCH法,都是以逼近法求近似值,具体见wikipedia

    AUC意味着什么

    那么AUC值的含义是什么呢?根据(Fawcett, 2006),AUC的值的含义是:

    The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.

    这句话有些绕,我尝试解释一下:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

    从AUC判断分类器(预测模型)优劣的标准:

    • AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
    • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
    • AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
    • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

    三种AUC值示例:

    简单说:AUC值越大的分类器,正确率越高

    为什么使用ROC曲线

    既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。下图是ROC曲线和Precision-Recall曲线的对比:

    在上图中,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。

    Reference

    (在此对以上博文的博主表示感谢!)


    展开全文
  • 如下图: 这里需要强调的是如果我们对亮度做这么一个剧烈的改变,那么便会在改变图片强度的同时也影响了图片的饱和对比度和清晰,此时两个图片右边部分饱和对比度和清晰都降低了,原因是过度增加亮度...


    前言:原创不易,转载请告知并注明出处!扫码关注公众号【机器学习与自然语言处理】,定期发布知识图谱,自然语言处理、机器学习等知识,添加微信号【17865190919】进讨论群,加好友时备注来自CSDN。
    在这里插入图片描述

    在上文【数字图像处理系列一】opencv-python快速入门篇 中结合了opencv-python对数字图像的基本操作有了一定的了解,本文我们将一起过数字图像概念和形成原理,并探讨一下亮度、对比度、分辨率、饱和度、锐化等基本属性

    来~干~,上一张程序截图:
    在这里插入图片描述



    一、何为数字图像


    1、数字图像定义

    对于一幅图像,我们可以将其放入坐标系中,这里取图像左上定点为坐标原点,x 轴向右,和笛卡尔坐标系x轴相同;y 轴向下,和笛卡尔坐标系y轴相反。这样我们可将一幅图像定义为一个二维函数 f(x,y),图像中的每个像素就可以用 (x,y) 坐标表示,而在任何一对空间坐标 (x,y) 处的幅值 f 称为图像在该点的强度或灰度,当 x,y 和灰度值 f 是有限离散数值时,便称该图像为 数字图像

    2、数字图像形成过程

    我们平时见到的多数图像都是有照射源和形成图像的场景元素对光能的反射和吸收而产生的,得到我们可见的数字图像分为一下几个步骤:

    (1) 图像感知和获取

    照射源入射光线照射到物体,经过反射或是折射光纤进入到人眼中,然后看到物体。而将照射能量转化为数字图像便需要用到传感器,主要的传感器有:

    • 单个成像传感器
    • 条带传感器
    • 阵列传感器

    原理很简单: 就是通过将输入电能和对特殊类型检测能源敏感的传感器材料相结合,把输入能源转化为电压,输出的电压波再经过取样和量化便可得到离散的数字图像 f(x,y)

    注:由图形形成模型来理解一下灰度级或强度级,请看下面

    上面我们提到图像可由而为函数 f(x,y) 表示,其物体意义其实就来自于照射源对物体的照射,函数 f(x,y) 可由两个分量来表示:

    • 入射到被观察场景的光源照射总量
    • 场景中物体所反射的光源总量

    上述两个分量分别称为入射分量和反射分量,表示为 i(x,y)、r(x, y),有:
    在这里插入图片描述
    其中:

    在这里插入图片描述
    在这里插入图片描述

    因此图像的灰度值或强度值是由入射分量和反射分量决定的,i(x,y) 的性质取决于照射源,而r(x, y) 的性质取决于成像物体的特性,公式只是给出了 i(x,y)、r(x, y) 的一般取值范围,自然对于不同的照射源和成像物体则 i(x,y)、r(x, y) 会有不同的取值,因此数字图像灰度取值范围便是:
    在这里插入图片描述
    在这里插入图片描述
    因此区间[Lmin,Lmax]便称为图像的灰度级,实际情况下常常令该区间为[0,L-1],其中f=0时为黑色,f=L-1时在灰度级中为白色,所有中间值是从黑色到白色之间变化的灰度色调,而图像最高和最低灰度级之间的灰度差便为对比度


    (2) 图像取样和量化

    为了产生一幅数字图像,我们需要把连续的感知数据转化为数字形式,便是:取样和量化。取样和量化目的便是为了将连续的感知数据离散化,而且图像的质量在很大程度上也取决于取样和量化中所用的样本数和灰度级,想了解详细过程请参考:图像的采样与量化及灰度直方图


    (3) 显示数字图像

    数字图像f(x,y)主要有三种表示方式:

    • 画为三维表面图像,如下图2.18(a)
    • 可视化灰度阵列图像,如下图2.18(b)
    • 二维数值阵列图像,如下图2.18(c )

    在这里插入图片描述




    二、亮度、对比度、饱和度、锐化、分辨率


    画重点啦: 图像亮度、对比度、饱和度和锐化之间并不是彼此独立的,改变其中一个特征可能会同时引起图像其他特征的变化,至于变化的程度取决于图像本身的特性,先建立一个概念,在后面的会在详述

    1、亮度

    图像亮度通俗理解便是图像的明暗程度,数字图像 f(x,y) = i(x,y) r(x, y) ,如果灰度值在[0,255]之间,则 f 值越接近0亮度越低,f 值越接近255亮度越高。而且我们也要把亮度和对比度区分开来,正如上述提的对比度指的是最高和最低灰度级之间的灰度差。下面通过图片感受一下亮度变化对数字图像的影响:
    在这里插入图片描述

    上面白色和红色两幅图中,图的右边相对于左边增加了亮度,可以看出图像右边相对于左边亮度有了一个整体的提升,这里只是对亮度做了一个小弧度的提升,我们尝试着将亮度提升的更高,如下图:
    在这里插入图片描述

    这里需要强调的是如果我们对亮度做这么一个剧烈的改变,那么便会在改变图片强度的同时也影响了图片的饱和度、对比度和清晰度,此时两个图片右边部分饱和度、对比度和清晰度都降低了,原因是过度增加亮度导致阴影赶上了高光,因为最大灰度值是固定的,所以最低灰度值快赶上了最大灰度值,因此影响了图片的饱和度、对比度和清晰度


    2、对比度和饱和度

    (1) 饱和度指的是图像颜色种类的多少, 上面提到图像的灰度级是[Lmin,Lmax],则在Lmin、Lmax 的中间值越多,便代表图像的颜色种类多,饱和度也就更高,外观上看起来图像会更鲜艳,调整饱和度可以修正过度曝光或者未充分曝光的图片。使图像看上去更加自然

    (2) 对比度上面已经介绍过,指的是图像暗和亮的落差值,即图像最大灰度级和最小灰度级之间的差值,看下图:
    在这里插入图片描述
    上面白色和红色辐条图像的右侧都增加了对比度,但我们可以看出右侧的白色辐条或是红色辐条随着对比度的增加,白/红色辐条都变亮了,背景变暗了,图像看起来更加清晰。


    但注意:在红色辐条中增加对比度同时也增加了饱和度,但白色辐条的饱和度没有随着亮度的增加而增加,这印证了前面说的变化的程度取决于图像本身的特性。因为饱和度对于具有鲜艳颜色,颜色丰富的图像影响很大,而对于暗淡的颜色或几乎是中性颜色影响较小


    3、锐化

    图像锐化是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。图像锐化在实际图像处理中经常用到,因为在做图像平滑,图像滤波处理的时候经过会把丢失图像的边缘信息,通过图像锐化便能够增强突出图像的边缘、轮廓

    如需了解图像锐化原理请查看博文: 图像锐化(增强)和边缘检测

    再通过下图来观察一下图像锐化效果:
    在这里插入图片描述

    从山图中我们可以看出图像白色、红色辐条的接近中心的细辐条亮度、对比度和饱和度也有了明显的提升,但外侧确没有太明显的变化,这是因为图像锐化会更多的增强边缘数据,因此影响也就更加明显


    小结一下:上面三个小节分别对图像的亮度、对比度、饱和度、锐化的概念做了基本的阐述,同时配图也着重强调了图像的亮度、对比度、饱和度、锐化之间也不是完全孤立存在的,是会互相影响的,So明白了他们之间的相互影响,在以后做数字图像处理的时候能根据更好的去调节图像亮度、对比度、饱和度、锐化这些属性

    4、分辨率

    不太规范的说图像分辨率可以看成是图像的大小,分辨率高图像就大,更清晰反之分辨率低图像就小。官方说法:图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,即:像素每英寸,单位为PPI(Pixels Per Inch),因此放大图像便会增强图像的分辨率,图像分辨率大图像更大,更加清晰,例如:一张图片分辨率是500x200,也就是说这张图片在屏幕上按1:1放大时,水平方向有500个像素点(色块),垂直方向有200个像素点(色块)




    三、图像亮度、对比度、饱和度、锐化、分辨率调节示例


    先画个重点:

    • 图像对比度调节可以直接在RGB空间利用变换公式 g(i,j)= af(i,j) + b 对图像进行线性变化;
    • 图像饱和度通常在RGB色彩空间调整不是很直观,而HSL彩色空可以很直观表示出每个像素的饱和度,所以对于饱和度的调节,首先读取图像的像素RGB值然后再转换到HSL空间得到饱和度与亮度值,调整以后再从HSL空间转换到RGB空间的RGB值,完成图像饱和度调整
    • 图像锐化通常分为利用空间滤波器锐化图像、利用频域滤波器锐化图像,将在后续文章图像滤波中做详细阐述,本文不讨论

    1、RGB空间图像亮度、对比度调节

    对于数字图像变换,设原像素灰度为 f(i,j),转化后的像素灰度为 g(i,j),则常用的线性变换是 g(i,j)= af(i,j) + b, 其中系数 a 影响图像的对比度,系数 b 影响图像的亮度,具体如下:
    (1) a=1时是原图;
    (2) a>1时对比度增强,图像看起来更加清晰;
    (3) a<1时对比度减弱,图像看起来变暗;
    (4) b影响图像的亮度,随着增加b (b>0)和减小b (b>0),图像整体的灰度值上移或者下移, 也就是图像整体变亮或者变暗, 不会改变图像的对比度

    上代码:

    import cv2
    import imutils
    import numpy as np
    
    def c_and_b(arg):
        ''''''
        cnum = cv2.getTrackbarPos(trackbar_name1, wname)
        bnum = cv2.getTrackbarPos(trackbar_name2, wname)
        #print(bnum)
        cimg = np.ones((img.shape[0], img.shape[1], 3), dtype=np.uint8)
        for i in range(img.shape[0]):
            for j in range(img.shape[1]):
                lst = 0.1*cnum*img[i, j] + bnum
                cimg[i, j] = [int(ele) if ele < 255 else 255 for ele in lst]
        cv2.imshow(wname, imutils.resize(cimg, 800))
    
    wname = 'brightness and contrast'
    trackbar_name1 = 'contrast'
    trackbar_name2 = 'brightness'
    img = cv2.imread("E:/peking_rw/ocr_project/base_prehandle/img/li.jpg")
    height, width = img.shape[:2]
    img = cv2.resize(img, (int(width/height*400), 400), interpolation=cv2.INTER_CUBIC)
    
    cv2.namedWindow(wname)
    cv2.createTrackbar(trackbar_name1, wname, 10, 20, c_and_b)
    cv2.createTrackbar(trackbar_name2, wname, 0, 100, c_and_b)
    
    c_and_b(0)
    if cv2.waitKey(0) == 27:
        cv2.destroyAllWindows()
    

    运行效果如下:

    在这里插入图片描述


    2、HSL空间图像亮度、饱和度调节

    HSL空间:代表色相,饱和度,明度三个通道的颜色。 H: Hue 色相、 S:Saturation 饱和度、 L :Lightness 明度。例如:归一化后二维数字图像(0, 0)像素的值为(0.2,0.3,0.4),则代表H=0.2,S=0.3,L=0.4

    上代码:

    import cv2
    import imutils
    import numpy as np
    
    def s_and_b(arg):
        lsImg = np.zeros(image.shape, np.float32)
        hlsCopy = np.copy(hlsImg)
        l = cv2.getTrackbarPos('l', 'l and s')
        s = cv2.getTrackbarPos('s', 'l and s')
        #1.调整亮度饱和度(线性变换)、 2.将hlsCopy[:,:,1]和hlsCopy[:,:,2]中大于1的全部截取
        hlsCopy[:, :, 1] = (1.0 + l / float(MAX_VALUE)) * hlsCopy[:, :, 1]
        hlsCopy[:, :, 1][hlsCopy[:, :, 1] > 1] = 1
        #HLS空间通道2是饱和度,对饱和度进行线性变换,且最大值在255以内,这一归一化了,所以应在1以内
        hlsCopy[:, :, 2] = (1.0 + s / float(MAX_VALUE)) * hlsCopy[:, :, 2]
        hlsCopy[:, :, 2][hlsCopy[:, :, 2] > 1] = 1
        # HLS2BGR
        lsImg = cv2.cvtColor(hlsCopy, cv2.COLOR_HLS2BGR)
        # 显示调整后的效果
        cv2.imshow("l and s", imutils.resize(lsImg, 650))
        
    image = cv2.imread('E:/peking_rw/ocr_project/base_prehandle/img/cartoon.jpg', 1)
    # 图像归一化,且转换为浮点型, 颜色空间转换 BGR转为HLS
    fImg = image.astype(np.float32)
    fImg = fImg / 255.0
    #HLS空间,三个通道分别是: Hue色相、lightness亮度、saturation饱和度
    #通道0是色相、通道1是亮度、通道2是饱和度
    hlsImg = cv2.cvtColor(fImg, cv2.COLOR_BGR2HLS)
    
    l, s, MAX_VALUE = 100, 100, 100
    cv2.namedWindow("l and s", cv2.WINDOW_AUTOSIZE)
    cv2.createTrackbar("l", "l and s", l, MAX_VALUE, s_and_b)
    cv2.createTrackbar("s", "l and s", s, MAX_VALUE, s_and_b)
    
    s_and_b(0)
    if cv2.waitKey(0) == 27:
        cv2.destroyAllWindows()
    

    运行效果如下:

    在这里插入图片描述


    3、图像分辨率调节

    图像分辨率调节就比较简单了,经常使用,opencv-python中自带了resize函数可以对图像的分辨率进行调节,resize函数官方给出定义:

    cv2.resize(img, (width,  height),  interpolation = cv2.INTER_LINEAR)
    

    参数一: 图像对象
    参数二: (width, height)输入的图像的宽度和高度
    参数三: 使用何种差值方式对图像进行缩放,由一下常用几种

    • cv2.INTER_LINEAR: 双线性插值,默认情况使用
    • cv2.INTER_NEAREST: 最邻近插值
    • cv2.INTER_AREA: 使用像素区域关系重新采样,和cv2.INTER_NEAREST相似
    • cv2.INTER_CUBIC: 4x4像素邻域内的双立方插值
    import cv2
    import imutils
    import numpy as np
    
    rgb_img = cv2.imread('E:/peking_rw/ocr_project/base_prehandle/img/li.jpg')
    height, width = rgb_img.shape[:2]
    rgb_img = cv2.resize(rgb_img, (int(width/height*100), 100), interpolation=cv2.INTER_CUBIC)
    cv2.imshow('resize image', rgb_img))
    if cv2.waitKey(0) == 27:
        cv2.destroyAllWindows()
    

    图像分辨率调节效果
    在这里插入图片描述




    四、总结


    总结一下本文所学习的知识点:

    • 数字图像的定义
    • 数字图像的形成过程
    • 数字图像亮度、对比度、饱和度、锐化、分辨率概念以及亮度、对比度、饱和度、锐化之间相互影响的关系
    • 数字图像亮度、对比度、饱和度、分辨率调节示例演示

    本文分享结束,有问题欢迎交流学习,大家也可以关注我的微信公众号,一起交流学习:
    在这里插入图片描述

    展开全文
  • 图像融合(四)-- 对比度金字塔

    千次阅读 2016-09-08 14:38:42
    在考虑人类视觉系统对局部对比度敏感这一视觉特性的基础上,提出了基于对比度金字塔(Contrast Pyramid,CP)分解的图像融合算法。CP 分解类似于 LP 分解,但它的每一层图像是高斯金字塔相邻两层图像的比率。 CP...
     
    

    对比度金字塔融合

    在考虑人类视觉系统对局部对比度敏感这一视觉特性的基础上,提出了基于对比度金字塔(Contrast Pyramid,CP)分解的图像融合算法。CP 分解类似于 LP 分解,但它的每一层图像是高斯金字塔相邻两层图像的比率。 CP 融合算法应用于合成孔径雷达和前视红外图像融合。

    1、原理阐述

        ​   (1)得到高斯金字塔(如上篇)

      (2)对比度金字塔

      用高斯金字塔得到上采样并高斯卷积之后的预测图像*Gl,*Gl的尺寸和Cl-1相同,即经过放大算子的处理(pyrup)。图像的对比度通常定义为:C = (g -gb)/gb= g/gb-I,这里g为图象某位置处的灰度值、gb为该位置处的背景灰度值、I表示单位灰度值图像。因窗口函数w(m,n)具低通滤波特性,所以G*l+1可以看作是Gl的背景,故可定义图像的对比度金字塔为:

      就是0层的G0除以G1上采样的得到的*G1再减去1,得到的就是对比度金字塔。

    (3)重构

        ​   从对比度金字塔(CN、CN-1、、、C0)的顶层CN开始、依次令l = N、N-1、、、0逐层由上到下、可依次得到高斯金字塔的各层GN、GN-1、G0。最终精确重构原始图像(高斯金字塔的最底层G0即为原始图象)。

    2、融合应用

      这里的应用和上面不同的就是融合规则的不同。

      设A、B为两幅原始图像,F为融合后的图像。其融合的基本步骤如下:

      1)对每一源图像分别进行对比度塔形分解,建立各图像的对比度金字塔;

      2)对图像金字塔的各分解层分别进行融合处理,不同的分解层采用不同的融合算子进行融合处理,最终得到融合后图像的对比度金字塔;

      3)对融合后所得对比度金字塔进行逆塔形变换(图像重构),所得到的重构图像即为融合图像。

      其中一种融合规则为:采用像素取大的原则。因为对比度大的像素是图像中相对突出和比较重要的像素。即获得两个图像的对比度金字塔后,差值越大就代表处变化越大,存在明显的信息,那么对应的就取该处变化大的值,保留重要的变化信息。

      另一种融合规则:基于区域特性量测的加权平均融合算子,该融合规则及融合算子的确定方法如下:

      1)分别计算两幅图像相应分解层上对应局部区域的能量:ElA及ElB:

      式中El(n,m)表示对比度金字塔第l层上,以(n,m)为中心位置的局部区域能量;Ll表示对比度金字塔的第l层图像;wl(n’ ,m’ )为与Ll对应的权系数;j、k定义了局部区域的大小(例如3*3、5*5或7*7等);n’、m’的变化范围在j、k内。这里不知道w是怎么取值的。

      这个算法有点麻烦,具体的见:http://www.docin.com/p-735309332.html

     

    基于对比度塔形分解的图像融合方法的物理意义在于:

    1)对比度塔形分解将原始图像分别分解到具有不同分辨率、不同空间频率的一系列分解层上(从底层到顶层,空间频率依次降低),同时,每一分解层均反映了相应空间频率上图像的对比度信息。

    2)融合过程是在各空间频率层上分别进行的,这样就可能针对不同分解层的不同频带上的特征与细节,采用不同的融合算子,以达到突出特定频带上特征与细节的目的。基于对比度塔形分解的图像融合恰恰是在不同的空间频带上进行融合处理的,因而可能获得与人的视觉特性更为接近的融合效果

    展开全文
  • 对比度调整的各种方法(二)

    千次阅读 2018-08-27 10:39:41
    另外MSR常见的缺点还有边缘锐化不足,阴影边界突兀,部分颜色发生扭曲,纹理不清晰,高光区域细节没有得到明显改善,对高光区域敏感度小等。 二.暗通道去雾 在绝大多数非天空的局部区域里,某些像素总会有至少...

    一.基于视网膜皮层理论的增强(重点讲解MSR)

    Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法,它是Edwin.H.Land于1963年提出的。Retinex也是由两个单词合成的一个词语,他们分别是retina 和cortex,即:视网膜和皮层。Land的retinex模式是建立在以下三个假设之上的:

    • 真实世界是无颜色的,我们所感知的颜色是光与物质的相互作用的结果。我们见到的水是无色的,但是水膜—肥皂膜却是显现五彩缤纷,那是薄膜表面光干涉的结果。
    • 每一颜色区域由给定波长的红、绿、蓝三原色构成的;

    Retinex可以在动态范围压缩、边缘增强和颜色恒常三个方面达到平衡,因此可以对各种不同类型的图像进行自适应的增强

    一幅给定的图像S(x,y)可以分解为两个不同的图像:反射图像R(x,y)和入射图像(也有人称之为亮度图像)L(x,y),其原理图如下所示: 
    这里写图片描述 
    如上图所示,图像可以看做是入射图像和反射图像构成,入射光照射在反射物体上,通过反射物体的反射,形成反射光进入人眼。

    1. 单尺度原理

    形成的图像可以如下公式表示: 

    其中,R(x, y)表示了物体的反射性质,即图像内在属性,我们应该最大程度的保留;而L(x, y)表示入射光图像,决定了图像像素能达到的动态范围,我们应该尽量去除。 
    一般,我们把照射图像假设估计为空间平滑图像,原始图像为S(x, y),反射图像为R(x, y),亮度图像为L(x, y)

    2.MSR原理

    MSR是在SSR基础上发展来的,优点是可以同时保持图像高保真度与对图像的动态范围进行压缩的同时,MSR也可实现色彩增强、颜色恒常性、局部动态范围压缩、全局动态范围压缩,也可以用于X光图像增强。 
    MSR计算公式如下:

    式中,K是高斯中心环绕函数的个数。当K=1时,MSR退化为SSR。 
    通常来讲,为了保证兼有SSR高、中、低三个尺度的优点来考虑,K取值通常为3,且有:

    w1=w2=w3=1/3 …………(7)

    此外,实验表明,ci分别取15, 80, 200可以得到较好效果。

    一般的Retinex算法对光照图像估计时,都会假设初始光照图像是缓慢变化的,即光照图像是平滑的。但实际并非如此,亮度相差很大区域的边缘处,图像光照变化并不平滑。所以在这种情况下,Retinuex增强算法在亮度差异大区域的增强图像会产生光晕。 
    另外MSR常见的缺点还有边缘锐化不足,阴影边界突兀,部分颜色发生扭曲,纹理不清晰,高光区域细节没有得到明显改善,对高光区域敏感度小等。

    二.暗通道去雾

    在绝大多数非天空的局部区域里,某些像素总会有至少一个颜色通道具有很低的值。换言之,该区域光强度的最小值是一个很小的数。下面给暗通道一个数学定义,对于任意的输入图像J,其暗通道可以用下式表达: 

                                                                            
    式中的Jc表示彩色图像的每个通道,Ω(x)表示以像素x为中心的一个窗口。上式的意义用代码表达也很简单,首先求出每个像素RGB分量中的最小值,存入一幅和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定,一般有WIndowSize=2*Radius+1。

    展开全文
  • 图像的对比度增强算法在很多场合都有着重要的应用,特别是在医学图像上,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的。而医学图像由于本身及成像条件的限制,图像的对比度很低。因此,在这个方面...
  • 图像的对比度增强算法在很多场合都有着重要的应用,特别是在医学图像上,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的。而医学图像由于本身及成像条件的限制,图像的对比度很低。因此,在这个方面...
  • 在考虑人类视觉系统对局部对比度敏感这一视觉特性的基础上,提出了基于对比度金字塔(Contrast Pyramid,CP)分解的图像融合算法。CP 分解类似于 LP 分解,但它的每一层图像是高斯金字塔相邻两层图像
  • 图像的局部对比度增强算法

    千次阅读 2016-01-27 17:14:38
    http://www.cnblogs.com/Leo_wl/p/3324760.html 图像的局部对比度增强算法 ...使用局部标准差实现图像的局部对比度增强算法。... 图像的对比度增强算法在很多场合都有着重要的应
  • ),是反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。 对于分类器或者说分类算法,评价指标主要有 precision , recall , F1 score 等,以及这里要讨论的 ROC 和 AUC 。...
  • Improving histogram-based image contrast enhancement using gray-level information histogram with application to X-ray images基于灰度信息直方图的X射线图像对比度增强改进Keywords:Image enhancement,Gray-...
  • 图像清晰评价15种方法对比

    万次阅读 热门讨论 2018-07-02 21:27:32
    在无参考图像的质量评价中,图像的清晰是衡量图像质量优劣的重要指标,它能够较好的与人的主观感受相对应,图像的清晰不高表现出图像的模糊。本文针对无参考图像质量评价应用,对目前几种较为常用的...
  • 提出一种面向结构化数据集的敏感属性自动化识别与分级算法,利用信息熵定义了属性敏感度,通过对敏感度聚类和属性间关联规则挖掘,将任意结构化数据集的敏感属性进行识别和敏感度量化;通过对敏感属性簇中属性间的互...
  • OpenCV进行图像相似度对比的几种办法

    万次阅读 多人点赞 2015-02-16 18:40:03
    由于并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响等),因而经常出现评价结果与人的主观感觉不...
  • yes,公司的专利技术等核心信息,自然不能公开,但是大部分信息都没有这么敏感;这个和法律有点类似,你先假设无罪,然后在找证据来证明有罪; 信息呢,你先default to open,然后再把机密信息挑选出来;但是如果倒...
  • spring cloud 跟dubbo的对比总结

    千次阅读 2018-05-17 13:23:38
    一 微服务架构的基础框架选择:Spring Cloud还是Dubbo最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构。...目前,Spring Cloud在国内的知名并不高,在前阵子...
  • 无人驾驶 | 自动驾驶技术和机器人技术的对比

    千次阅读 多人点赞 2021-01-09 13:06:36
    激光雷达对于速度并不敏感,而毫米波雷达则对速度非常敏感,可以直接获得目标的速度,因为毫米波雷达会有很明显的多普勒效应,通过检测其多普勒频移可将目标的速度提取出来。 毫米波雷达最基本的探测技术是使用FMCW...
  • 本节向大家介绍一下UML建模工具Rose与PowerDesigner,两款建模工具的对比,主要包括二者的出身,二者的区别等内容,相信通过本节的介绍你对UML建模工具Rose与PowerDesigner,两款建模工具的特性有清楚的认识。...
  • 过去十年, IT变化日新月异。如果我们回溯到100年前的1900年代,也会感慨电对经济社会的改变同样如此之大,历史惊人的相似...未来软件将不断重新定义世界的万事万物,数据在软件冶炼工艺的作用下价值将不断被挖掘出来。
  • dB(分贝)定义及其应用

    千次阅读 2020-11-30 15:17:26
    1.2 dB的定义 1.3 dB的应用 1.4 dBA 1.5dB叠加 参考文章: 今天在音频工程和声学领域中,工程师、音响师几乎每天都会用到dB这个词。比如“将1000Hz衰减3dB”,“把推子推高3dB”,或者“这款音箱灵敏是98dB ...
  • 服务对平台敏感,难以简单复用:通常我们在提供对外服务时,都会以REST的方式提供出去,这样可以实现跨平台的特点,任何一个语言的调用方都可以根据接口定义来实现。那么在Dubbo中我们要提供REST接口时,不得不实现...
  • PSNR定义与计算

    万次阅读 2015-07-06 21:08:41
    这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受...
  • 方差、协方差、标准差(标准偏差/均方差)、... 方差用于衡量随机变量或一组数据的离散程度,方差在在统计描述和概率分布中有不同的定义和计算公式。①概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,244
精华内容 9,697
关键字:

对比敏感度定义