| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> OpenCV图像处理学习二十,图像直方图均衡化原理与实现 -> 正文阅读 |
|
[人工智能]OpenCV图像处理学习二十,图像直方图均衡化原理与实现 |
一.图像直方图的概念图像直方图,是指对整个图像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图。直方图反映了图像灰度的分布情况,是图像的统计学特征。图像的灰度直方图就描述了图像中灰度分布情况, 能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数, 描述的是图像中具有该灰度级的像素的个数: 其中, 横坐标是灰度级, 纵坐标是该灰度级出现的率。 图像直方图表示图像中每一等级像素的个数,反映了图像中每种像素值出现的频率,是图像的基本统计特征之一,具有平移,旋转,缩放不变性,广泛应用于图像处理的各个领域。比如灰度图像的阈值分割,基于颜色的图像检索,图像的分类等。直方图横坐标表示像素值,纵坐标表示该像素值的个数,常见的有灰度直方图和颜色直方图。 ?假设有图像像素分布数据长度和宽度为8x8,像素值范围分为0~14共15个灰度等级,统计得到各个等级出现的像素值次数及直方图如下图所示,每个紫色的长条叫BIN。 直方图中的 BINS, DIMS 和 RANGE (1)BINS:上面的直方图显示输入图像中的每个像素值的像素数量,即从0到14。即需要14个值来显示上述的直方图(输入图像的像素等级为0-14)。但是并不是所有的图像的像素等级都为0-14,例如,大部分的灰度图像的像素等级为0-255,即一共有256个像素等级,如果需要找到位于0到15之间,然后是16到31,... ,240到255之间的像素值。你只需要16个值来表示直方图(即16×16=256)。这就是OpenCV中的BINS,只是将整个直方图拆分成16个子部分,每个子部分的值是其中所有像素数的总和。这个子部分被称为“BIN”,在OpenCV中,BINS由术语hitSize表示。 (2)DIMS: 表示维度,对灰度图像来说只有一个通道值dims=1 (3)RANGE:这是你要测量的强度值的范围。通常,它是[0,256],即所有强度值。 --------------------------------------------------------------------------------------------------------------------------------- 二.直方图均衡化过曝光图像的灰度级集中在高亮度范围内,而曝光不足将使图像灰度级集中在低亮度范围内。采用直方图均衡化,可以把原始图像的直方图变换为均匀分布(均衡)的形式,这样就增加了像素之间灰度值差别的动态范围,从而达到增强图像整体对比度的效果。 直方图均衡化是一种简单有效的图像增强技术,通过改变图像的直方图来改变图像中各像素的灰度,主要用于增强动态范围偏小的图像的对比度。原始图像由于其灰度分布可能集中在较窄的区间,造成图像不够清晰。 实际的直方图均衡化很少能够得到完全平坦的直方图。在离散情况下,通常不能证明离散的直方图均衡化能得到均匀的直方图。尽管如此,均衡化有助于图像直方图的延展,均衡化后图像的灰度级范围更宽,有效地增强了图像的对比度。 --------------------------------------------------------------------------------------------------------------------------------? 输入图像的像素等级为0-255等级的情况如下,图像的像素总和为255,如下图所示。 将图像像素分为16个像素区间,每个区间包含16个像素,计算每组像素区间的像素数量,如下图所示。 ------------------------------------------------------------------------------------------------------------------------------- 三.直方图均衡化的原理接下来从数学的角度理解直方图均衡化的原理,假设待处理图像为灰度图像,r 表示待处理图像的灰度,取值范围为,则??表示黑色, 表示白色,直方图均衡化的过程对应于一个变换? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? (a)? ??在上严格单调递增; 条件(a)中严格单调递增是为了保证输出灰度值与输入灰度值一一对应,同时像素灰度值之间的相对大小关系不变,这样可以避免反变换时出现问题;条件(b)保证了输出图像的灰度范围与输入图像相同。实际中处理的图像通常是整数灰度值,必须把所有结果四舍五入为最接近的整数值。因此,当严格单调条件不满足时,使用寻找最接近整数匹配的方法解决反变换不唯一的问题。 图像均衡化推导 一幅灰度图像的灰度级可以看作区间内的随机变量,因此可用其概率密度函数(PDF)描述。假设和分别表示随机变量 ?和 ?的PDF,和已知 , 且在定义域内连续可微,则变换后 ?的PDF可由下式得到: 此处用到了概率论中有关随机变量函数分布的相关定理:设是连续型随机变量,其概率密度函数为,又函数严格单调,其反函数 有连续导数,则也是一个连续型随机变量,其概率密度函数为: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 其中? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 由此看到,输出图像灰度 的PDF就由输入图像灰度 的PDF和变换 ?得到,图像处理中一个重要的变换函数构造如下: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3) 将(4)式代入(2)式得: ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ?(5)? 由(5)式可知,为均匀分布,也就是说,输入图像的PDF经过(3)式中的变换 ?后得到的随机变量 s 服从均匀分布。 ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ?(6)
则直方图均衡化的值可由 (6) 式计算得到: ? ? ? ? ? ? ? ? ? ? ? ? ??? 同理:? ? ? ? ? ? ?? ? ? ? ? ?以此类推计算求得所有 值并将其近似为最接近的整数,结果如下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?,
直方图均衡化原理参考:直方图均衡化_schwein_van的博客-CSDN博客_直方图均衡化 --------------------------------------------------------------------------------------------------------------------------------- 四.直方图均衡化API函数接口
该函数能够同时计算多个输入图像,多个通道,不同灰度范围的灰度直方图.
--------------------------------------------------------------------------------------------------------------------------------- 代码实现
--------------------------------------------------------------------------------------------------------------------------------- 图像处理效果灰度图和灰度直方图处理 ?灰度图直方图和直方图变换效果,对灰度图进行处理后,改变了图像的灰度分布,增强动态范围偏小的图像的对比度。均衡化后图像的灰度级范围更宽,有效地增强了图像的对比度。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 19:12:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |