当前位置:   article > 正文

Python直方图处理(直方图均衡化、规定化)_python 直方图均衡化

python 直方图均衡化

一、直方图均衡化

统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。
在这里插入图片描述
灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。

对比度是画面黑与白的比值,也就是从黑到白的渐变层次。比值越大,从黑到白的渐变层次就越多,从而色彩表现越丰富。对比度对视觉效果的影响非常关键,一般来说对比度越大,图像越清晰醒目,色彩也越鲜明艳丽;而对比度小,则会让整个画面都灰蒙蒙的。
直方图均衡化又称直方图修平,就是把一已知灰度概率分布的图像,经过一种变换,使之演变成一幅具有均匀灰度概率分布的新图像。它是一种很重要的非线性点运算,使用该方法可以加强图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好的在直方图上分布。

二、直方图均衡化原理

在这里插入图片描述

三、直方图均衡化结果

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

直方图均衡化处理python代码实现过程:

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 导入原始图像,色彩空间为灰度图
src_img = cv2.imread('YaoGan/img/avg.jpg', 0)
# 调用cv2.calcHist 函数绘制直方图
img_hist = cv2.calcHist([src_img], [0], None, [256], [0, 256])

# 直方图均衡化,调用cv2.equalizeHist 函数实心
result_img = cv2.equalizeHist(src_img)
# 显示原始图像
cv2.imshow('src_img', src_img)
# 显示均衡化后的图像
cv2.imshow('result_img', result_img)
cv2.waitKey(0)
# 用蓝色绘制原始图像直方图
plt.plot(img_hist, color="b")
plt.show()
plt.hist(img_hist.ravel(), 256, [0, 256])
plt.show()
# 绘制均衡化后的直方图
plt.hist(result_img.ravel(), 256, [0, 256])
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

四、直方图规定化

直方图规定化是指一幅输入图像经过点运算变化,将原图像的灰度直方图改造成特定的非均匀分布的形状,使其能够更好地突出图像中人们感兴趣的部分,以此得到更好的增强效果。
但由于数字图像的灰度级是离散并且是有限的,所以直方图规定化的结果一般只是与目标直方图的形状大体接近,并非理想的完全一致。
直方图规定化本质上即寻找一个从灰度级

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/661405
推荐阅读
相关标签