一. 直方图归一化

有些灰度图像的像素并没有分布在 [0,255] 内,而是分布在 [0,255] 的子区间内。这样的图像肉眼看上去往往不是很清晰。我们可以通过直方图归一化的方式,将它的像素分布从 [0,255] 的子区间变为 [0,255] 范围内。通过这样的方式,往往可以增加图像的清晰度。

这种归一化直方图的操作被称为灰度变换(Grayscale Transformation)。像素点的取值范围从 [c,d] 转换到 [a,b] 的算法如下:

直方图归一化算法  ↑


二. 实验:将一张灰度范围为 [10,160] 的图像进行直方图归一化,使其灰度范围为 [0,255]

import cv2
import numpy as np
import matplotlib.pyplot as plt# histogram normalization
def hist_normalization(img, a=0, b=255):# get max and minc = img.min()d = img.max()out = img.copy()# normalizationout = (b-a) / (d - c) * (out - c) + aout[out < a] = aout[out > b] = bout = out.astype(np.uint8)return out# Read image
img = cv2.imread("../head_g_n.jpg",0).astype(np.float)
# histogram normalization
out = hist_normalization(img)# Display histogram
plt.hist(out.ravel(), bins=255, rwidth=0.8, range=(0, 255))
plt.savefig("out_his.jpg")
plt.show()# Save result
cv2.imshow("result", out)
cv2.imwrite("out.jpg", out)
cv2.waitKey(0)
cv2.destroyAllWindows()

三. 实验结果及分析

原图像像素分布直方图[10,160] ↑

原图像 ↑

归一化后的图像像素分布直方图[0,255] ↑

归一化后的图像 ↑

可以看到,我们将灰度范围为 [10,160] 的图像进行直方图归一化到 [0,255] 后,图像的清晰度显著增强。


四. 参考内容:

        https://www.cnblogs.com/wojianxin/p/12509686.html

https://www.jianshu.com/p/7b4bf0f2621b

Histogram Normalization 图像直方图归一化相关推荐

  1. 图像的灰度级数越多越好_MATLAB-数字图像处理 图像直方图归一化

    图像直方图归一化 图像直方图概念: 图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的.纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数 ...

  2. 图像直方图正规化(Normalization)数学原理和纯C语言实现

    图像处理入门系列文章 C语言生成RGB24格式图像纯C语言实现 图像缩放之最近邻内插法数学原理和纯C语言实现 图像直方图均衡化(Equalization)数学原理和纯C语言实现 图像直方图规定化(Sp ...

  3. 使用Python,OpenCV计算图像直方图(cv2.calcHist)

    使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...

  4. python图像直方图与直方图均衡化

    图像直方图以及灰度与彩色图像的直方图均衡化 图像直方图: 图像的直方图用来表征该图像像素值的分布情况.用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目 ...

  5. opencv 直方图_OpenCV之图像直方图反向投影

    python代码: import cv2 as cv import numpy as np from matplotlib import pyplot as pltdef back_projectio ...

  6. python图像直方图、获取每一个柱的个数_python数字图像处理实现直方图与均衡化...

    在图像处理中,直方图是非常重要,也是非常有用的一个处理要素. 在skimage库中对直方图的处理,是放在exposure这个模块中. 1.计算直方图 函数:skimage.exposure.histo ...

  7. Opencv之以图像直方图可视化

    图像直方图是一种对图像空间域内色彩灰阶的分布情况的图形表示, 以便更好地理解颜色分布. 核心函数 hist=cv.calcHist(images, channels, mask, histSize, ...

  8. 图像直方图均衡化算法 python实现

    一. 直方图均衡化: 直方图均衡化是使图像直方图变得平坦的操作.直方图均衡化能够有效地解决图像整体过暗.过亮的问题,增加图像的清晰度. 具体流程如下所示.其中S是总的像素数,Zmax是像素的最大取值( ...

  9. python画简便的图片-用python简单处理图片(5):图像直方图

    我们先来看两个函数reshape和flatten: 假设我们先生成一个一维数组: vec=np.arange(15) print vec 显示为: [ 0 1 2 3 4 5 6 7 8 9 10 1 ...

最新文章

  1. 【 FPGA 】FIR 滤波器之多相插值器(Polyphase Interpolator)
  2. 【腾讯面试题】SQL语句优化方法有哪些?
  3. 在BAdI definition PRODUCT_R3_ADAPTER的implementation里获得download type
  4. 正则至少一个数字_好程序员web前端培训分享JavaScript学习笔记之正则
  5. 在微信浏览器中 location.reload() 不刷新解决方案(直接调用方法)
  6. bat批处理执行python_通过批处理来运行python程序
  7. matlab实现查值,[数学建模(六)]使用MATLAB实现插值
  8. MTK 驱动---(11) EMI定制
  9. 在Windows 7 (SP1)上安装Visual Studio 2015
  10. 有趣、高效的编程示例
  11. Android仿miui11风格,华为手机适配MIUI11图标风格主题-适配EMUI9.1/9.0
  12. js laypage mysql_laypage 物理分页与逻辑分页实例
  13. Python自动化之操作PPT--更新模板数据,减少重复操作
  14. python炫彩界面_炫彩界面库和火花脚本编辑框scintilla制作python IDE框架
  15. java实现网页结构分析列表发现
  16. 向工程腐化开炮|资源治理
  17. 寒山是一位高僧,拾得是一位和尚。
  18. 软件测试-软件测试总结
  19. v-model是什么?怎么使用?
  20. 怎么用python表白_如何正确使用Python进行表白

热门文章

  1. python语言的读法-Python语言的优势有哪些?
  2. python100例详解-Python类和实例详解
  3. python自动化办公真的好用吗-python如何实现自动化办公?
  4. python能做什么工作-学了Python可以做什么工作
  5. 调用Mutation函数的方式
  6. JavaScript中this指针的绑定规则
  7. jni开发-CmakeList详解
  8. [投稿]Speex回声消除代码分析
  9. FFmpeg源代码结构图 - 编码
  10. ffdshow 源代码分析 7: libavcodec视频解码器类(TvideoCodecLibavcodec)