美文网首页
10、直方图应用

10、直方图应用

作者: BigBigGuy | 来源:发表于2019-01-04 20:29 被阅读0次

直方图均衡化,实际上是调整图像的对比度,是图像增强的一种手段

(注:直方图均衡化都是基于灰度图像)

原灰度图像 均衡化的图像 我曹,居然如此牛逼

全局均衡化

def equalHist_function(image):
    '''
        全局均衡化,即电脑自动均衡化,无法调节
    '''
    gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    dst = cv.equalizeHist(gray)
    cv.imshow('equalHist_function', dst)

果真如此!!!

局部均衡化


def localEqualHist_function(image):
    '''
        局部均衡化:
            clipLimit:默认是40,可以调整。
            tileGridSize = (2^n , 2^n)
    '''
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    temp = cv.createCLAHE(clipLimit = 3.0,tileGridSize=(16,16))
    dst = temp.apply(gray)
    cv.imshow('equalHist_function', dst)

那就没有那么明显了

直方图比较,实际上是比较两个图像是否相似,可用于指纹识别和人脸识别等模式识别。

相关性越大,卡方越小,相交性越小,巴斯距离越小,两张图像越像。

直方图比较通常根据几个因素一起比较。

比较因素

通过bgr的直方图进行比较,将每个通道的256降维到16

def create_rgb_hist(image):
    h, w, c = image.shape
    rgbHist = np.zeros([16*16*16, 1], np.float32)  # 初始一个4096*1的矩阵
    bsize = 256/16  # 降维,由bgr均是 256 的范围降到 16 的范围
    for row in range(h):
        for col in range(w):
            b = image[row, col, 0]
            g = image[row, col, 1]
            r = image[row, col, 1]
            index = np.int(b/bsize)*16*16 + np.int(g/bsize)*16+np.int(r/bsize)
            rgbHist[np.int(index), 0] = rgbHist[np.int(
                index), 0]+1  # 由于python没有自增自减操作
    return rgbHist


def hist_compare(image1, image2):
    hist1 = create_rgb_hist(image1)
    hist2 = create_rgb_hist(image2)
    match1 = cv.compareHist(hist1, hist2, cv.HISTCMP_BHATTACHARYYA)  # 巴斯距离
    match2 = cv.compareHist(hist1, hist2, cv.HISTCMP_CHISQR)  # 卡方
    match3 = cv.compareHist(hist1, hist2, cv.HISTCMP_CORREL)  # 相关性
    print("巴斯距离:%s,卡方:%s,相关性:%s" % (match1, match2, match3))
超级不想似
#巴斯距离接近 1 ,卡方无限大,相关性超级小
巴斯距离:0.9874323091463763,卡方:120012.81470390719,相关性:0.0001379280327372972

相关文章

  • 10、直方图应用

    直方图均衡化,实际上是调整图像的对比度,是图像增强的一种手段 (注:直方图均衡化都是基于灰度图像) 全局均衡化 局...

  • 2019-04-10 OpenCV学习

    11边缘保留滤波(EPF) 美化图片 12图像直方图 13直方图应用 直方图均衡化:图像增强的一个手段 直方图比较...

  • 直方图匹配

    之前我们介绍过直方图均衡化。直方图匹配的核心思想就是在应用直方图的均衡化。 和之前直方图均衡化一样,直方图的匹配本...

  • bar

    matlab中函数bar绘制直方图中的应用函数bar(x)可以绘制直方图

  • Python 学习笔记 110

    2020年2月10日20:14:29 条形图的更多应用场景 频数统计(频率)Other 直方图的绘制 展示连续的数...

  • 【R画图学习19.1】直方图

    频率分布直方图,或者频数分布直方图,是一种用来可视化数据的分布情况的绘图,在生物医学领域应用广泛,比如展示高通量测...

  • 直方图-透过现象看本质

    本文大纲 ①直方图-透过现象看本质 ②直方图的构成 ③直方图-案例解析 ④小结 直方图-透过现象看本质 直方图记录...

  • 直方图2022-11-20

    直方图是工程质量统计分析方法应用之一。 一、正常型直方图就是中间高,两侧底,左右接近对称的图型,如上图(a); 二...

  • 9.4直方图均衡化

    原图 原图直方图 灰度图 灰度直方图 均衡灰度图 均衡灰度直方图 均衡彩色图 均衡彩色直方图

  • 四、OpenCV+TensorFlow 入门人工智能图像美化处理

    彩色图片直方图 灰度直方图源码 彩色直方图源码 直方图均衡化 1.灰度 1.1灰度直方图均衡化源码 2.彩色 2....

网友评论

      本文标题:10、直方图应用

      本文链接:https://www.haomeiwen.com/subject/qmjkrqtx.html