天天看點

彩色圖像直方圖均衡化opencv的python實作

如果一副圖像具有全部可能的灰階級,并且像素值的灰階均勻分布,那麼這副圖像就具有高對比度和多變的灰階色調。灰階級豐富且覆寫範圍較大。在外觀上這樣的圖像具有更加豐富的色彩,不會過暗或者過亮。

直方圖均衡化的主要目的是将原始圖像的灰階級均勻地映射到整個灰階級範圍内,得到一個灰階級分布均勻的圖像

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('../data/1.jpg')

img0 = cv2.equalizeHist(img[:, :, 0])  # 各個通道分别均衡化
img1 = cv2.equalizeHist(img[:, :, 1])
img2 = cv2.equalizeHist(img[:, :, 2])

img_e = cv2.merge([img0, img1, img2])

plt.figure('original')
plt.hist(img.ravel(), 256)
plt.figure('after')
plt.hist(img_e.ravel(), 256)
plt.show()

cv2.imshow('img', img)
cv2.imshow('e_img', img_e)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('../data/equ.jpg', img_e)