
直方图均衡化是一种在图像处理领域中使用图像直方图调整对比度的方法.
基本思想: 将原始图像的直方图转换为均匀分布的形式,从而增加了像素灰度值的动态范围,从而增强了整体图像对比度.
直方图均衡的三种情况是:
插入原始图片:


原始图片
对于直方图均衡化局部直方图均衡化opencv2,主要使用opencv提供的equalizeHist()方法.
import cv2
import numpy as np
img = cv2.imread("linuxidc.com.jpg", 1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("linuxidc", gray)
dst = cv2.equalizeHist(gray)
cv2.imshow("linuxidc.com", dst)
cv2.waitKey(0)

将灰度图像作为参数传递给equalizeHist()方法,效果如下:

彩像的直方图均衡化与灰度图像略有不同. 您首先需要使用split()方法拆分彩像,拆分三个通道,然后分别均衡它们. 三个通道合并后,操作如下:
import cv2
import numpy as np
img = cv2.imread("linuxidc.com.jpg", 1)
cv2.imshow("www.linuxidc.com", img)
# 彩像均衡化,需要分解通道 对每一个通道均衡化
(b, g, r) = cv2.split(img)
bH = cv2.equalizeHist(b)
gH = cv2.equalizeHist(g)
rH = cv2.equalizeHist(r)
# 合并每一个通道
result = cv2.merge((bH, gH, rH))
cv2.imshow("linuxidc.com", result)
cv2.waitKey(0)

均衡后的效果如下:

import cv2
import numpy as np
img = cv2.imread("linuxidc.com.jpg", 1)
imgYUV = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
cv2.imshow("linuxidc.com", img)
channelsYUV = cv2.split(imgYUV)
channelsYUV[0] = cv2.equalizeHist(channelsYUV[0])
channels = cv2.merge(channelsYUV)
result = cv2.cvtColor(channels, cv2.COLOR_YCrCb2BGR)
cv2.imshow("www.linuxidc.com", result)
cv2.waitKey(0)
均衡后的效果如下:


有关Python的更多信息局部直方图均衡化opencv2,请参见Python特殊页面
Linux社区的RSS地址:
本文将永久更新链接地址:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-189374-1.html
我们也希望为他筹多点钱去治疗