<pre name="code" class="cpp">#include<iostream>
void main()
{
第一步:统计灰度图像中,每阶的数目
第二部:计算出每阶的概率密度
第三部:接着进行灰度值的映射,将原来的灰度值映射到新的空间上,这个映射的方法就是根据概率密度累加进行映射的
比如:
for(int i=0;i<256;i++)
{
if(i==0)
{
temp[i]=fpro[0];
}else{
temp[i]=temp[i-1]+fpro[i];//这个0.5表示的意思是工业上一般的四舍五入法
}
result[i]=(int)(255.0*temp[i]+0.5);
}
}
接着根据这个映射公式进行映射就行,因为数组前面的i表示的是原顺序,相当于0----255,然后数组对应的值就表示对应新的映射结果,然后就实现了直方图均衡化。
这个写的比较粗糙,讲了一下大致的运算方法
直方图规则化:
它的意思按我的理解就是根据自己的需要,然后自己再重新去做一次映射,这个规则当然每个人都有不同的规则,所以这里就不细细说明。有不对的地方可以留言纠正,毕竟这个是个严肃的问题,会误导别人。