A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 阎兆辉 于 2019-8-8 22:43 编辑

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] 纯文本查看 复制代码
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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马