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进行直方图均衡

文章插图

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

文章插图

注重事项运行情况win7+pycharm+python3.6.5+ opencv3.3.1
直方图仅仅是图像加强或者颜色校正的一种方式, 并不是所有场景都有好的结果
对于过曝图片yuv方式也是可以考虑的 。

以上内容就是python3.6.5环境 opencv3.3.1进行直方图均衡的内容啦, 希望对你有所帮助哦!

    推荐阅读