加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

深入认识OpenCV+Python直方图均衡化

发布时间:2021-11-12 11:15:53 所属栏目:PHP教程 来源:互联网
导读:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。 基本思想:把原始图的直方图变换为均匀分 布的形式,这样就增加了像素灰度值的动态 范围,从而达到增强图像整体对比度的效果。 直方图均衡化的三种情况,分别是: 灰度图像直方图均衡化

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
 
基本思想:把原始图的直方图变换为均匀分 布的形式,这样就增加了像素灰度值的动态 范围,从而达到增强图像整体对比度的效果。
 
直方图均衡化的三种情况,分别是:
 
灰度图像直方图均衡化
彩色图像直方图均衡化
YUV 直方图均衡化
插入原图:
 
深入理解OpenCV+Python直方图均衡化
 
原图
 
灰度图像直方图均衡化
对直方图均衡化主要使用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()方法即可,效果如下:
 
深入理解OpenCV+Python直方图均衡化
 
彩色图像直方图均衡化
彩色图像的直方图均衡化和灰度图像略有不同,需要将彩色图像先用split()方法,将三个通道拆分,然后分别进行均衡化.最后使用merge()方法将均衡化之后的三个通道进行合并.操作如下:
 
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)
均衡化之后的效果如下:
 
深入理解OpenCV+Python直方图均衡化
 
YUV 直方图均衡化
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)

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读