zoukankan      html  css  js  c++  java
  • OpenCV+Python直方图均衡化

    更多内容,请参考http://www.cnblogs.com/Undo-self-blog/p/8439149.html

    直方图均衡化可以将像素值分布的区域更广泛,在Python语言下,OpenCV提供的直方图均衡化函数有直接均衡化equalizeHist和自适应的均衡化createCLAHE,自适应的均衡化函数将整幅图像会被分成很多小块,然后再对每一个小块分别进行直接直方图均衡化。图像采用2种方法处理后的效果分别如中下、右下图所示。从效果上看,直接均衡化对比度太大,自适应直方图均衡化效果比较好。

    三幅图像对应的直方图如下

    有时候,使用直接均衡化的效果不是好不好的问题,而是。。。不好描述,直接看下图结果

    而使用自适应均衡化一般不会出现这种情况,效果如下图

    代码如下,IDE其中使用pyChar,data文件夹与.py文件在同一个文件夹下。

    import cv2 as cv2
    import numpy as np
    import matplotlib.pyplot as plt
     
    imgOrigin = cv2.imread('data/1.png', cv2.CV_16UC1)
     
    imgEqualizeHist = cv2.equalizeHist(imgOrigin)
     
    clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
    imgCLAHE = clahe.apply(imgOrigin)
     
    cv2.imshow('origin', imgOrigin)
    cv2.imshow('equalizeHist', imgEqualizeHist)
    cv2.imshow('createCLAHE', imgCLAHE)
     
    plt.ylim(0,10000)
    plt.hist(imgOrigin.ravel(),256,[0,256]); plt.show()
    plt.ylim(0,10000)
    plt.hist(imgEqualizeHist.ravel(),256,[0,256]); plt.show()
    plt.ylim(0,10000)
    plt.hist(imgCLAHE.ravel(),256,[0,256]); plt.show()
     
    cv2.waitKey(0)
    

      

  • 相关阅读:
    理解协方差矩阵
    混合高斯模型(Gaussian mixture model, GMM)
    简单理解EM算法Expectation Maximization
    Sigmoid函数与Softmax函数的理解
    关于交叉熵损失函数Cross Entropy Loss
    进制转换 -- 牛客
    首字母大写--牛客
    最简真分数
    剩下的数 -- 牛客
    N的阶乘 -- 牛客
  • 原文地址:https://www.cnblogs.com/originalcandy/p/13992406.html
Copyright © 2011-2022 走看看