zoukankan      html  css  js  c++  java
  • 【数字图像处理】直方图均衡化

    全局直方图均衡化

    直方图均衡化通过调整图像的直方图来增强图像的对比度,经常使用在医学图像分析中。

     例如一幅8*8图像像素值如下:

    对各个像素值进行计数:

    得到累计概率分布:

    其中均衡化后的像素值计算公式为:

    前面的标题全局直方图均衡化,代表着直方图在整个图像计算,这样会有一个缺点,图像的部分区域会显得过暗或者过亮。这个时候就需要使用自适应直方图均衡化(Adaptive histogram equalization)。自适应直方图均衡化,首先将图像分为几个部分,然后对每个部分分别计算直方图进行均衡化,同时对边缘像素进行插值处理。由图中可以看出自适应直方图均衡化对高亮区域的处理要比常规的直方图均衡化好的多。

     1 import os
     2 from PIL import Image
     3 from skimage import exposure
     4 import numpy as np
     5 import matplotlib.pyplot as plt
     6 
     7 
     8 img = Image.open('/home/vincent/Pictures/work/Unequalized_Hawkes_Bay_NZ.jpg')
     9 img = np.array(img)
    10 img_eq = exposure.equalize_hist(img)
    11 img_adapteq = exposure.equalize_adapthist(img, clip_limit=0.04)
    12 
    13 plt.figure(0)
    14 plt.imshow(img)
    15 plt.title('low contrast image')
    16 plt.figure(1)
    17 plt.imshow(img_eq)
    18 plt.title('high constrast image using normal histogram equalization')
    19 plt.figure(2)
    20 plt.imshow(img_adapteq)
    21 plt.title('high constract image using adaptive histogram euqalization')
    22 plt.show()
  • 相关阅读:
    一个进程间同步和通讯的 C# 框架
    C# 程序员最常犯的 10 个错误
    《C#并发编程经典实例》笔记
    C# BackgroundWorker 详解
    C# Excel导入导出
    List实现行转列的通用方案
    C# 开发者最经常犯的 8 个错误
    Intellij IDEA 查找接口实现类的快捷键
    target runtime com.genuitec.runtime.genuitec.jee60 is not defined
    java.io.WinNTFileSystem
  • 原文地址:https://www.cnblogs.com/vincentcheng/p/9240285.html
Copyright © 2011-2022 走看看