Python学习之直方图均衡化原理详解
目录
1.点算子2.线性灰度变换3.直方图均衡化4.代码实战1.点算子
点算子是两个像素灰度值间的映射关系,属于像素的逐点运算,相邻像素不参与运算。点算子是最简单的图像处理手段,如:亮度调整、对比度调整、颜色变换、直方图均衡化等等。
2.线性灰度变换
线性灰度变换表达为:
其中rk、sk分别为输入、输出点像素灰度值。
▲图2.1线性灰度变换
当a>1时,输出图像像素灰度范围扩大,图像对比度增强,当a<1时反之。这是因为人眼不易区分相近的灰度值,因此若图像灰度值范围较小,观感上细节不够清晰。当a=1、b≠0时,点算子使图像灰度整体上移或下移,即整体变亮或变暗。
▲图2.2图像对比度(左为弱对比度,右为强对比度)
3.直方图均衡化
下图再次给出了关于图像对比度的例子。
▲图3.1图像对比度示例
直方图均衡化是以累计分布函数为核心,将原始图像灰度直方图从比较集中的某个灰度区间,非线性地映射为在全部灰度范围内的较均匀分布,从而增强对比度。
下面阐述直方图均衡化的数学原理。首先作原始图像灰度的概率直方图如图。
▲图3.2直方图均衡化原理
设输入像素灰度值为rk,累计分布函数为
其中ni为图像中灰度值为ri的像素频数,n为图像像素总数。设输出像素灰度值为sk,像素范围为smin-smax。期望输出灰度直方图是均匀分布,即
令C(sk)=C(rk),即得
所以最终直方图均衡化的点算子为
所以最终直方图均衡化的点算子为
4.代码实战
按照前文的原理编写累积分布函数计算公式,以及均衡化算子
# 计算累计分布函数 def C(rk): # 读取图片灰度直方图 # bins为直方图直方柱的取值向量 # hist为bins各取值区间上的频数取值 hist, bins = np.histogram(rk, 256, [0, 256]) # 计算累计分布函数 return hist.cumsum()
# 计算灰度均衡化映射 def T(rk): cdf = C(rk) # 均衡化 cdf = (cdf - cdf.min()) * (255 - 0) / (cdf.max() - cdf.min()) + 0 return cdf.astype("uint8")
均衡化时直接调用函数即可,下面给出完整代码
import numpy as np import cv2 as cv from matplotlib import pyplot as plt # 计算累计分布函数 def C(rk): # 读取图片灰度直方图 # bins为直方图直方柱的取值向量 # hist为bins各取值区间上的频数取值 hist, bins = np.histogram(rk, 256, [0, 256]) # 计算累计分布函数 return hist.cumsum() # 计算灰度均衡化映射 def T(rk): cdf = C(rk) # 均衡化 cdf = (cdf - cdf.min()) * (255 - 0) / (cdf.max() - cdf.min()) + 0 return cdf.astype("uint8") # 读取图片 img = cv.imread("1.png", 0) # 将二维数字图像矩阵转变为一维向量 rk = img.flatten() # 原始图像灰度直方图 plt.hist(rk, 256, [0, 255], color = "r") cv.imshow("原图像",img) # 直方图均衡化 imgDst = T(rk)[img] cv.imshow("直方图均衡化后的图像",imgDst) plt.hist(imgDst.flatten(), 256, [0, 255], color = "b") plt.show()
看看效果:
▲图4.1直方图均衡化效果(灰度直方图)
▲图4.2均衡化前
▲图4.3均衡化后
以上就是Python学习之直方图均衡化原理详解的详细内容,更多关于Python直方图均衡化的资料请关注脚本之家其它相关文章!
上一篇:python库h5py入门详解
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?