直方图规定化

来源:互联网 发布:苹果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)的求和区间为[0I(a)]pu(uj)的求和区间仍为[0a]a=0时,将介于0I(0)之间的ps(si)都映射到pu(u0)中;1≤a≤N-1时,将介于I(a-1)+1I(a)之间的ps(si)都映射到pu(uj)中去。

代码:

根据希望达到的直方图数据,对当前图像直方图转换,得到转换的直方图数据。

 

[cpp] view plaincopy
  1. void HistogramSpecification(int* src, int* dst, int* histMap)  
  2. {  
  3.     int x = 0, y = 0, i = 0;  
  4.     int minX = 0;  
  5.     int minValue = 0;  
  6.     int srcMin[256][256];  
  7.     short lastStartY = 0, lastEndY = 0, startY = 0, endY = 0;  
  8.     //计算原始图像到目标图像累积直方图各灰度级的差的绝对值  
  9.     for (y = 0; y < 256; y++)  
  10.     {  
  11.         for (x = 0; x < 256; x++)  
  12.         {  
  13.             srcMin[x][y] = abs(src[y] - dst[x]);  
  14.         }  
  15.     }  
  16.   
  17.     //GML映射  
  18.     for (x = 0; x < 256; x++)  
  19.     {  
  20.         minValue = srcMin[x][0];  
  21.         for (y = 0; y < 256; y++)  
  22.         {  
  23.             if (minValue > srcMin[x][y])  
  24.             {  
  25.                 endY = y;  
  26.                 minValue = srcMin[x][y];  
  27.             }  
  28.         }  
  29.   
  30.         if (startY != lastStartY || endY != lastEndY)  
  31.         {  
  32.             for (i = startY; i <= endY; i++)  
  33.             {  
  34.                 histMap[i] = x;//建立映射关系  
  35.             }  
  36.             lastStartY = startY;  
  37.             lastEndY = endY;  
  38.             startY = lastEndY + 1;  
  39.         }  
  40.     }  
  41. }  
更多0