直方图匹配(规定化)
直方图匹配
直方图均衡技术,可以自动地确定变换函数,而产生具有均匀直方图的输出图像。但是不同图像出现的问题不尽相同,有时根据图像的某种缺陷,我们需要得到处理后具有特殊直方图的图像。均衡化这样单一的方法显然不能成为万能钥匙。
直方图匹配,又称直方图规定化。与直方图均衡化不同,直方图均衡试图使输出图像具有一个平坦的直方图,而直方图匹配是为了得到一个特定的直方图。
基本原理
直方图规定化的基本思路是:对原图像直方图和目标直方图都做均衡化,变成相同的归一化的均匀直方图。然后以此均匀直方图为媒介,再对原图像做均衡化的逆运算。
设原图像和输出图像的灰度变量分别为rr和zz,并令pr(r)p_r(r)和pz(z)p_z(z)表示他们所对应的概率密度函数,分别对rr和zz作如下变换:
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)]
在实践中,一个困难是寻找 T(r)T(r)和 G−1G^{-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(z_q)=(L-1)\sum_{i=0}^q p_z(z_i)
对一个 qq值,有
z_q=G^{-1}(s_k)
实际操作过程中,我们不需要计算 GG的反变换。因为我们处理的图像灰度级是整数(如8比特图像的灰度级是0到255)。我们可以将GG变换存储在一个表中,然后根据给定的 sks_k值,查找存储在表中最匹配的 zqz_q值。
实现过程
- 计算原图像的直方图pr(r)p_r(r),并寻找直方图均衡变换,得到sks_k并四舍五入为范围[0,L-1]内的整数。
- 对q=0,1,...,L−1q=0,1,...,L-1计算变换GG的所有值,其中pz(zi)p_z(z_i)是规定直方图的值。把GG的值四舍五入为范围[0,L-1]内的整数,并存储在一个表中。
- 对每个值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的映射。
- 对输入图像进行均衡化,然后使用步骤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)的最终结果并不完全与规定的直方图匹配,但达到了将灰度明确移向灰度级高端的目的。
直方图匹配(规定化)相关推荐
- 在OpenCV下写的直方图匹配(直方图规定化)C++源码!
直方图匹配的原理就不多作解释了,我曾经还将MATLAB源码改写成过C源码,详情可见我的博文 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码! 本文已转移到 https ...
- 第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 ...
- 直方图匹配法(规则化)
生成具有特定直方图的图像的方法,被称作直方图匹配法或***直方图规则化***. 原理: 考虑归一化之后在[0,1]区间内的连续灰度级,令r和z分别表示输入图像与输出图像的灰度级. 输出图像的灰度级有概 ...
- 直方图匹配(直方图规定化)
直方图处理可以增加图像的动态范围,但是直方图处理针对的是图像整体偏暗偏亮(注意是整体),若一幅图像即存在偏暗又存在偏亮的区域,此时想要增加图像的动态范围,不宜采用直方图处理.(例如想要增加偏暗区域的动 ...
- python图像处理:直方图的规定化(直方图匹配)
写在前面 因为笔者数字图像处理的作业是要求用VB来做规定化的处理,笔者写出来后想看看python有什么库可以实现,毕竟像均衡化之类的操作都可以通过py的cv2库里的函数解决,但是在CSDN上查询的时候 ...
- Python实现图像直方图规定化(直方图匹配)-附完整代码
以下内容需要直方图均衡化.规定化知识 均衡化:https://blog.csdn.net/macunshi/article/details/79815870 规定化:https://blog.csdn ...
- 直方图规定化(直方图匹配)
在介绍直方图规定化之前,先介绍一下统计直方图和累积直方图.参考自:http://blog.csdn.net/tkp2014/article/details/40151515 对颜色特征的表达方式有许多 ...
- matlab 自定义直方图匹配_matlab中直方图规定化(直方图匹配)的单映射 – MATLAB中文论坛...
matlab写的一个直方图规定化中的单映射程序,大家可以借鉴下 clc; clear; I=imread('e:\2.bmp'); figure,subplot(321),imshow(I); tit ...
- c++ opencv 图像处理:直方图处理(直方图均衡化,直方图匹配(规定化))
文章目录 前言 一.直方图(histogram) 二.直方图处理 1.直方图均衡化 2.直方图匹配(规定化) 三.opencv函数总结 1.equalizeHist图像均衡化 2.calcHist获取 ...
最新文章
- python 漂亮的excel_python 自定义漂亮的 excel 结果测试报告
- 网易java二面_网易Java开发面试:一面+二面+三面以及 面试经验总结
- 三台主机分别部署LAMP
- 【Python】Python视频制作工具Manim入门,基础形状详细介绍
- php表白情话,向一个人表白 抖音最火99句情话告白
- Wget CVE-2014-4877:FTP 符号链接任意文件系统访问
- vsphere虚拟克隆虚拟服务器,vSphere实战攻略2:虚拟机模板与克隆
- 004商城项目:ssm框架的整合之后的调试
- net软件安装后不能卸载的解决方法
- System.Diagnostics.debug.Assert(条件)的使用
- Direct3D光与材质的颜色值
- HDU2544:最短路(Dijkstra)
- BLE设备地址类型笔记
- 计算机和工业设计哪个就业前景大,工业设计专业就业前景
- 高德地图的circle圈
- 用免疫算法解决TSP问题
- 鸿蒙之境法有三乘,《神都夜行录》法有三乘副本组队通关攻略 游戏小伙伴都进来瞧瞧吧...
- 标签ul与ol的区别及使用方法
- 解决:小米手机设置全屏后屏幕上方有黑条问题
- ik php分词,IK中文分词的配置和使用
热门文章
- 基于HTML+CSS+JavaScript的MIUI10官网网站设计与开发
- 【深度相机系列四】深度相机分类之结构光法
- 河北雄安新区设立 或掀起新一轮智慧城市建设
- 线下融合百亿加码 天猫超级品牌日将打造品牌自己的双11
- 《扬帆优配》国际金价创出阶段性新高 内盘市场风险整体可控
- 阴阳师 服务器维护,阴阳师6月16日服务器维护更新内容公告
- Makefile常见错误解析 - make: *** No rule to make target 'test1.o', needed by 'test2'. Stop
- Triangle Count算法
- 信息学奥赛一本通:2065:【例2.2】整数的和
- easyu tree节点的拖拽(1)