python3.6.5环境 opencv3.3.1进行直方图均衡

直方图平衡是很常用的图像处置方式 , 常用于图像加强 , 过曝处置 , 颜色平衡等方面 。
本文采用python3.6.5+ opencv3.3.1在win7情况下进行直方图平衡 。

需要这些哦
opencv3.3.1
python3.6.5
win7+pycharm
方式/
11:灰度图直方图平衡
依然采用经典的lena图片作为源图片 。
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread("c:\\lena.jpg")
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow("Original Pic", gray)
dst = cv.equalizeHist(gray)
cv.imshow("Result equalizeHist Pic", dst)
plt.hist(gray.ravel(), 256, [0, 256])                       
plt.show()
plt.hist(dst.ravel(), 256, [0, 256])                         
plt.show()
cv.waitKey(0)

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

2别离输出源图和处置后的图片 , 以及对应的直方图便于阐发
2:源图以及直方图

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

33:平衡后的灰度图以及直方图
图片亮度加强了 , 直方图也与上图大分歧 。

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

44:彩色直方图处置 , 需要三个通道别离处置 , 最后再归并!
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread("c:\\lenacolor.jpg")cv.imshow("Original Pic", img)# 彩色图像对3个通道平衡化(b, g, r) = cv.split(img)bH = cv.equalizeHist(b)gH = cv.equalizeHist(g)rH = cv.equalizeHist(r)# 归并通道dst = cv.merge((bH, gH, rH))cv.imshow("Result equalizeHist Pic", dst)plt.hist(img.ravel(), 256, [0, 256]) plt.show()plt.hist(dst.ravel(), 256, [0, 256])                            plt.show()cv.waitKey(0)

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

55:彩色源图以及直方图
较着直方图并不平衡 。

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

python3.6.5环境 opencv3.3.1进行直方图均衡

文章插图

66:平衡后的灰度图以及直方图
图片颜色转变了 , 直方图也与上图分歧 。
但颜色有所掉真 , 可以考虑采纳其它方式处置更好 。
【python3.6.5环境 opencv3.3.1进行直方图均衡】或者分块处置也可以 。 后续再进一步会商 。

python3.6.5环境 opencv3.3.1进行直方图均衡

推荐阅读