大白话直方图均衡

简介: 用一句大白话说一下直方图均衡的概念,直方图均衡(histogram equalization)是通过让原图的每个像素点的灰度值通过某个函数变换成另一个值,来提高原图的对比度,具体的函数方程为output = L*T(input)其中output为映射后的灰度值,L为灰度级255,T(r)为灰度值r的累积分布概率,计算方法:灰度值为r及以下的像素点总个数数/总像素点数。

用一句大白话说一下直方图均衡的概念,直方图均衡(histogram equalization)是通过让原图的每个像素点的灰度值通过某个函数变换成另一个值,来提高原图的对比度,具体的函数方程为output = L*T(input)其中output为映射后的灰度值,L为灰度级255,T(r)为灰度值r的累积分布概率,计算方法:灰度值为r及以下的像素点总个数数/总像素点数。
对于数学上的一些分析,这里就不写了,想了解具体的可以看这里
以下是效果图片和代码:

原图


histogram_equalize
Figure_1

直方图均衡之后


his_equa_out
Figure_1_1
# img_hist = cv2.calcHist(img, [1], None, [256], [0, 256])另一个计算直方图的函数
plt.hist(img[:,:,0].flatten(), 256, [0, 256], color = 'r')
# plt.plot(img_hist)
plt.title('original')
plt.show()
img_yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
# equalize the histogram of the Y channel
img_yuv[:,:,0] = cv2.equalizeHist(img_yuv[:,:,0])   # only for 1 channel
plt.hist(img_yuv[:,:,0].flatten(), 256, [0, 256], color='r')
img_output = cv2.cvtColor(img_yuv, cv2.COLOR_YUV2BGR)   # y: luminance
# img_equalized_hist = cv2.calcHist(img_yuv, [1], None, [256], [0, 256])
# plt.plot(img_equalized_hist)
plt.title('equalized')
plt.show()
# convert the YUV image back to RGB format
cv2.imwrite(path, img_output)
cv2.imshow('Color input image', img)
cv2.imshow('Histogram equalized', img_output)
key = cv2.waitKey(0)
cv2.destroyAllWindows()
目录
相关文章
|
2月前
|
存储 Web App开发 运维
发布、部署,傻傻分不清楚?从概念到实际场景,再到工具应用,一篇文章让你彻底搞清楚
部署和发布是软件工程中经常互换使用的两个术语,甚至感觉是等价的。然而,它们是不同的! • 部署是将软件从一个受控环境转移到另一个受控环境,它的目的是将软件从开发状态转化为生产状态,使得软件可以为用户提供服务。 • 发布是将软件推向用户的过程,应用程序需要多次更新、安全补丁和代码更改,跨平台和环境部署需要对版本进行适当的管理,有一定的计划性和管控因素。
150 1
|
3月前
|
API iOS开发
总是搞不懂的同步异步,阻塞非阻塞
总是搞不懂的同步异步,阻塞非阻塞
47 0
|
7月前
|
前端开发 JavaScript Java
|
7月前
|
C++
C++零碎概念介绍
C++零碎概念介绍
|
8月前
|
算法 芯片
怎样解决电感啸叫声?
怎样解决电感啸叫声?
126 0
|
9月前
|
数据安全/隐私保护
机房收费系统—经典代码
机房收费系统—经典代码
|
9月前
|
算法 搜索推荐 Java
JAVA常用算法流派的详谈
在软件开发领域,算法是解决问题的关键。而JAVA作为一门广泛应用的编程语言,其算法库也非常丰富。本文将详细介绍JAVA常用算法流派,包括搜索算法、排序算法、图算法、字符串算法和动态规划算法等。
89 0
|
Java API 定位技术
Java后台专业术语
OOD(Object Oriented Design):面向对象设计 OOA(Object Oriented Analysis):面向对象分析
84 0
|
机器学习/深度学习 人工智能 算法
畅快!5000字通俗讲透决策树基本原理
在当今这个人工智能时代,似乎人人都或多或少听过机器学习算法;而在众多机器学习算法中,决策树则无疑是最重要的经典算法之一。这里,称其最重要的经典算法是因为以此为基础,诞生了一大批集成算法,包括Random Forest、Adaboost、GBDT、xgboost,lightgbm,其中xgboost和lightgbm更是当先炙手可热的大赛算法;而又称其为之一,则是出于严谨和低调。实际上,决策树算法也是个人最喜爱的算法之一(另一个是Naive Bayes),不仅出于其算法思想直观易懂(相较于SVM而言,简直好太多),更在于其较好的效果和巧妙的设计。似乎每个算法从业人员都会开一讲决策树专题,那么今天
247 0
畅快!5000字通俗讲透决策树基本原理
2w字 + 41张图带你参透并发编程!(三)
在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行。任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况。
2w字 + 41张图带你参透并发编程!(三)