直方图匹配

直方图均衡技术,可以自动地确定变换函数,而产生具有均匀直方图的输出图像。但是不同图像出现的问题不尽相同,有时根据图像的某种缺陷,我们需要得到处理后具有特殊直方图的图像。均衡化这样单一的方法显然不能成为万能钥匙。

直方图匹配,又称直方图规定化。与直方图均衡化不同,直方图均衡试图使输出图像具有一个平坦的直方图,而直方图匹配是为了得到一个特定的直方图。


基本原理

直方图规定化的基本思路是:对原图像直方图和目标直方图都做均衡化,变成相同的归一化的均匀直方图。然后以此均匀直方图为媒介,再对原图像做均衡化的逆运算。

设原图像和输出图像的灰度变量分别为rr和zz,并令pr(r)p_r(r)和pz(z)p_z(z)表示他们所对应的概率密度函数,分别对rr和zz作如下变换:

T(r)=(L−1)∫r0pr(w)dwG(z)=(L−1)∫z0pz(w)dw

T(r)=(L-1)\int_0^r p_r(w)dw\\ G(z)=(L-1)\int_0^z p_z(w)dw
由于两个式子都为均匀化变换,可得 T(r)=G(z)T(r)=G(z),因此 zz满如下条件:

z=G−1[T(r)]

z=G^{-1}[T(r)]
在实践中,一个困难是寻找 T(r)T(r)和 G−1G^{-1}的有意义的表达式。在处理离散变量时,问题可以大大简化。下面的方法仅为了得到一个近似的直方图。为方便起见,我们重写公式如下:

sk=T(rk)=(L−1)∑j=0kpr(rj)=L−1MN∑j=0knj,k=0,1,...,L−1

s_k=T(r_k)=(L-1)\sum_{j=0}^k p_r(r_j)=\frac{L-1}{MN}\sum_{j=0}^k n_j,\quad k=0,1,...,L-1
其中 MNMN是图像的像素总数, njn_j是具有灰度值 rjr_j的像素数, LL是图像中可能的灰度级数。类似地,对目标直方图随机变量的计算变换函数

G(zq)=(L−1)∑i=0qpz(zi)

G(z_q)=(L-1)\sum_{i=0}^q p_z(z_i)
对一个 qq值,有

zq=G−1(sk)

z_q=G^{-1}(s_k)
实际操作过程中,我们不需要计算 GG的反变换。因为我们处理的图像灰度级是整数(如8比特图像的灰度级是0到255)。我们可以将GG变换存储在一个表中,然后根据给定的 sks_k值,查找存储在表中最匹配的 zqz_q值。

实现过程

  1. 计算原图像的直方图pr(r)p_r(r),并寻找直方图均衡变换,得到sks_k并四舍五入为范围[0,L-1]内的整数。
  2. 对q=0,1,...,L−1q=0,1,...,L-1计算变换GG的所有值,其中pz(zi)p_z(z_i)是规定直方图的值。把GG的值四舍五入为范围[0,L-1]内的整数,并存储在一个表中。
  3. 对每个值s0,s1,...,sL−1s_0,s_1,...,s_{L-1},使用步骤2中存储的GG值寻找相应的zqz_q值,以使G(zq)G(z_q)最接近sks_k,并存储这些sks_k到zqz_q的映射。
  4. 对输入图像进行均衡化,然后使用步骤3找到的映射把该图像中的每个均衡后的像素值sks_k映射为直方图规定化后的图像中的相应值zqz_q,形成直方图规定化后的图像。

计算例子

设输入为大小为64x64像素的3比特数字图像,其灰度分布、直方图值、均衡化后的值(四舍五入)为:

rkr_k nkn_k pr(rk)p_r(r_k) sk=7∑kj=0pr(rj)s_k=7\sum_{j=0}^k p_r(r_j)
r0=0r_0=0 790 0.19 1
r1=1r_1=1 1023 0.25 3
r2=2r_2=2 850 0.21 5
r3=3r_3=3 656 0.16 6
r4=4r_4=4 329 0.08 6
r5=5r_5=5 245 0.06 7
r6=6r_6=6 122 0.03 7
r7=7r_7=7 81 0.02 7

设规定直方图为:

zqz_q pz(zq)p_z(z_q) G(zq)=7∑qj=0pz(zj)G(z_q)=7\sum_{j=0}^q p_z(z_j)
r0=0r_0=0 0.00 0
r1=1r_1=1 0.00 0
r2=2r_2=2 0.00 0
r3=3r_3=3 0.15 1
r4=4r_4=4 0.20 2
r5=5r_5=5 0.30 5
r6=6r_6=6 0.20 6
r7=7r_7=7 0.15 7

将所有的sks_k值映射到相应的zqz_q值:

sks_k →\rightarrow zqz_q
1 →\rightarrow 3
3 →\rightarrow 4
5 →\rightarrow 5
6 →\rightarrow 6
7 →\rightarrow 7

如图显示了变换过程:

虽然图(d)的最终结果并不完全与规定的直方图匹配,但达到了将灰度明确移向灰度级高端的目的。

直方图匹配(规定化)相关推荐

  1. 在OpenCV下写的直方图匹配(直方图规定化)C++源码!

    直方图匹配的原理就不多作解释了,我曾经还将MATLAB源码改写成过C源码,详情可见我的博文 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码! 本文已转移到 https ...

  2. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波9 - 直方图处理 - 直方图匹配(规定化)灰度图像,彩色图像都适用

    直方图匹配(规定化) 连续灰度 s=T(r)=(L−1)∫0rpr(w)dw(3.17)s = T(r) = (L-1) \int_{0}^{r} p_r(w) \text{d} w \tag{3.1 ...

  3. 直方图匹配法(规则化)

    生成具有特定直方图的图像的方法,被称作直方图匹配法或***直方图规则化***. 原理: 考虑归一化之后在[0,1]区间内的连续灰度级,令r和z分别表示输入图像与输出图像的灰度级. 输出图像的灰度级有概 ...

  4. 直方图匹配(直方图规定化)

    直方图处理可以增加图像的动态范围,但是直方图处理针对的是图像整体偏暗偏亮(注意是整体),若一幅图像即存在偏暗又存在偏亮的区域,此时想要增加图像的动态范围,不宜采用直方图处理.(例如想要增加偏暗区域的动 ...

  5. python图像处理:直方图的规定化(直方图匹配)

    写在前面 因为笔者数字图像处理的作业是要求用VB来做规定化的处理,笔者写出来后想看看python有什么库可以实现,毕竟像均衡化之类的操作都可以通过py的cv2库里的函数解决,但是在CSDN上查询的时候 ...

  6. Python实现图像直方图规定化(直方图匹配)-附完整代码

    以下内容需要直方图均衡化.规定化知识 均衡化:https://blog.csdn.net/macunshi/article/details/79815870 规定化:https://blog.csdn ...

  7. 直方图规定化(直方图匹配)

    在介绍直方图规定化之前,先介绍一下统计直方图和累积直方图.参考自:http://blog.csdn.net/tkp2014/article/details/40151515 对颜色特征的表达方式有许多 ...

  8. matlab 自定义直方图匹配_matlab中直方图规定化(直方图匹配)的单映射 – MATLAB中文论坛...

    matlab写的一个直方图规定化中的单映射程序,大家可以借鉴下 clc; clear; I=imread('e:\2.bmp'); figure,subplot(321),imshow(I); tit ...

  9. c++ opencv 图像处理:直方图处理(直方图均衡化,直方图匹配(规定化))

    文章目录 前言 一.直方图(histogram) 二.直方图处理 1.直方图均衡化 2.直方图匹配(规定化) 三.opencv函数总结 1.equalizeHist图像均衡化 2.calcHist获取 ...

最新文章

  1. python 漂亮的excel_python 自定义漂亮的 excel 结果测试报告
  2. 网易java二面_网易Java开发面试:一面+二面+三面以及 面试经验总结
  3. 三台主机分别部署LAMP
  4. 【Python】Python视频制作工具Manim入门,基础形状详细介绍
  5. php表白情话,向一个人表白 抖音最火99句情话告白
  6. Wget CVE-2014-4877:FTP 符号链接任意文件系统访问
  7. vsphere虚拟克隆虚拟服务器,vSphere实战攻略2:虚拟机模板与克隆
  8. 004商城项目:ssm框架的整合之后的调试
  9. net软件安装后不能卸载的解决方法
  10. System.Diagnostics.debug.Assert(条件)的使用
  11. Direct3D光与材质的颜色值
  12. HDU2544:最短路(Dijkstra)
  13. BLE设备地址类型笔记
  14. 计算机和工业设计哪个就业前景大,工业设计专业就业前景
  15. 高德地图的circle圈
  16. 用免疫算法解决TSP问题
  17. 鸿蒙之境法有三乘,《神都夜行录》法有三乘副本组队通关攻略 游戏小伙伴都进来瞧瞧吧...
  18. 标签ul与ol的区别及使用方法
  19. 解决:小米手机设置全屏后屏幕上方有黑条问题
  20. ik php分词,IK中文分词的配置和使用

热门文章

  1. 基于HTML+CSS+JavaScript的MIUI10官网网站设计与开发
  2. 【深度相机系列四】深度相机分类之结构光法
  3. 河北雄安新区设立 或掀起新一轮智慧城市建设
  4. 线下融合百亿加码 天猫超级品牌日将打造品牌自己的双11
  5. 《扬帆优配》国际金价创出阶段性新高 内盘市场风险整体可控
  6. 阴阳师 服务器维护,阴阳师6月16日服务器维护更新内容公告
  7. Makefile常见错误解析 - make: *** No rule to make target 'test1.o', needed by 'test2'. Stop
  8. Triangle Count算法
  9. 信息学奥赛一本通:2065:【例2.2】整数的和
  10. easyu tree节点的拖拽(1)