opencv-python对彩色图像进行直方图均衡化

环境:spyder(python 3.7 ) opencv-python (4.1.2.30)

opencv-python中有一个函数cv.equalizeHist(single_channel_img)可以非常方便的对图像进行直方图均衡化处理

在这里插入图片描述
直方图均衡化增加了图像的对比度,待会我们通过例子就可以看出图片明显的区别,这里需要注意的一点是, src参数必须是8比特的单通道图像,否者报错

import cv2 as cv 
import numpy as np
from matplotlib import pyplot as plt
 
test=cv.imread("test.bmp",-1)
 
B,G,R = cv.split(test) #get single 8-bits channel
EB=cv.equalizeHist(B)
EG=cv.equalizeHist(G)
ER=cv.equalizeHist(R)
equal_test=cv.merge((EB,EG,ER))  #merge it back
cv.imshow("test",test)
cv.imshow("equal_test",equal_test)
hist_EB=cv.calcHist([EB],[0],None,[256],[0,256]) 
hist_EG=cv.calcHist([EG],[0],None,[256],[0,256]) 
hist_ER=cv.calcHist([ER],[0],None,[256],[0,256]) 
hist_b=cv.calcHist([B],[0],None,[256],[0,256]) 
plt.plot(hist_EB,'b');
plt.plot(hist_b,'r');
plt.show()

运行结果:

在这里插入图片描述
(由于网页原因,尺寸有拉伸)但是不影响观察到右边的图像对比度更高。代码的最后两行展示了均衡前和均衡后的Blue通道的像素分布。

在这里插入图片描述
(红色代表均衡前的,蓝色代表均衡之后的,是不是感觉蓝色均衡很多)

到这里系统自带的函数就已经展示完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子私房菜

给小强一点爱心呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值