直方图均衡基本原理--python的实现方法

1.基本原理

通过一个变换,将输入图像的灰度级转换为`均匀分布`,变换后的灰度级的概率密度函数为
 
Ps(s)=1L−1Ps(s)=1L−1




直方图均衡的变换为
 

s=T(r)=(L−1)∫r0Pr(c)dcs=T(r)=(L−1)∫0rPr(c)dc


 

  • ss为变换后的灰度级,rr为变换前的灰度级
  • Pr(r)Pr(r)为变换前的概率密度函数

2. 测试结果





上代码

[Python] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import numpy as np
 
def hist_equalization(input_image):
    '''
    直方图均衡(适用于灰度图)
    :param input_image: 原图像
    :return: 均衡后的图像
    '''
    output_imgae = np.copy(input_image) # 输出图像,初始化为输入
 
    input_image_cp = np.copy(input_image) # 输入图像的副本
 
    m, n = input_image_cp.shape # 输入图像的尺寸(行、列)
 
    pixels_total_num = m * n # 输入图像的像素点总数
 
    input_image_grayscale_P = [] # 输入图像中各灰度级出现的概率,亦即输入图像直方图
 
    # 求输入图像中各灰度级出现的概率,亦即输入图像直方图
    for i in range(256):
        input_image_grayscale_P.append(np.sum(input_image_cp == i) / pixels_total_num)
 
    # 求解输出图像
    t = 0               # 输入图像的灰度级分布函数F
    for i in range(256):
 
        t = t + input_image_grayscale_P[i]
 
        output_imgae[np.where(input_image_cp == i)] = 255 * t
 
    return output_imgae
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值