直方图规定化
来源:互联网 发布:苹果mac恢复系统 编辑:程序博客网 时间:2024/05/01 21:45
直方图规定化
原理:
在实际应用中,希望能够有目的地增强某个灰度区间的图像, 即能够人为地修正直方图的形状, 使之与期望的形状相匹配,这就是直方图规定化的基本思想。换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像之间的关系,选择地控制直方图,使原始图像的直方图变成规定的形状,从而弥补了直方图均衡不具备交互作用的特性。
例如:Pr (r)为原图像的灰度密度函数, Pz (z)为希望得到的增强图像的灰度密度函数,二者的直方图如下:
直方图规定化增强处理的步骤如下:
1,其增强原理是先对原始的直方图均衡化:S = T(r)
2,同时对规定的直方图均衡化:v = G(z)
3,由于都是均衡化,故令 S = v,则:z = G-1(v) = G-1[T(r)]。
组映射:
存在一维离散整数函数I(a),(a=0,1,2……N-1),而且满足0≤I(0) ≤I(1) ≤……≤I(a) ≤……≤I(N-1) ≤M-1。寻找能使 |∑ps(si)-∑pu(uj)|达到最小的I(a),其中ps(si)的求和区间为[0,I(a)],pu(uj)的求和区间仍为[0,a]。a=0时,将介于0和I(0)之间的ps(si)都映射到pu(u0)中;1≤a≤N-1时,将介于I(a-1)+1和I(a)之间的ps(si)都映射到pu(uj)中去。
代码:
根据希望达到的直方图数据,对当前图像直方图转换,得到转换的直方图数据。
- void HistogramSpecification(int* src, int* dst, int* histMap)
- {
- int x = 0, y = 0, i = 0;
- int minX = 0;
- int minValue = 0;
- int srcMin[256][256];
- short lastStartY = 0, lastEndY = 0, startY = 0, endY = 0;
- //计算原始图像到目标图像累积直方图各灰度级的差的绝对值
- for (y = 0; y < 256; y++)
- {
- for (x = 0; x < 256; x++)
- {
- srcMin[x][y] = abs(src[y] - dst[x]);
- }
- }
- //GML映射
- for (x = 0; x < 256; x++)
- {
- minValue = srcMin[x][0];
- for (y = 0; y < 256; y++)
- {
- if (minValue > srcMin[x][y])
- {
- endY = y;
- minValue = srcMin[x][y];
- }
- }
- if (startY != lastStartY || endY != lastEndY)
- {
- for (i = startY; i <= endY; i++)
- {
- histMap[i] = x;//建立映射关系
- }
- lastStartY = startY;
- lastEndY = endY;
- startY = lastEndY + 1;
- }
- }
- }
- 灰度直方图规定化
- 直方图规定化
- 直方图规定化
- 直方图规定化
- 直方图规定化
- 直方图规定化
- 直方图规定化
- 直方图均衡化and直方图规定化
- 图像直方图均衡和直方图规定化
- 直方图规定化(直方图匹配)
- 直方图匹配(规定化)
- matlab实现直方图规定化
- 直方图规定化(匹配)
- 直方图处理(规定化)
- 直方图匹配(规定化)
- 直方图均衡化及规定化
- 直方图均衡化与规定化
- 直方图均衡化与规定化
- Android 启动 白屏问题 解决
- VM网络设置几种方式
- 文本分类入门
- 再谈程序员要注重沟通能力的提升——如何培养起写作的习惯
- java进行UDP编程例子
- 直方图规定化
- WIN32 SDK 创建一个窗体的过程
- 银行
- 昂达V971四核测评
- 解决cocos2d-X 2.0版本后创建的Android项目提示org.cocos2dx.lib.Cocos2dxActivity找不到问题
- 最近自己哪出问题了。
- 炸金花
- HDU1024--Max Sum Plus Plus
- 利用mmap实现文件拷贝