首页 > 代码库 > 数字图像处理之直方图均衡
数字图像处理之直方图均衡
直方图均衡化的原理在这里就不赘述了,网上有多此类的博文,也可以参考冈萨雷斯的《数字图像处理》(第三版)一书中的第三章中的相关介绍;
这里演示一下直方图均衡化的效果:
原图像如下:
经过直方图均衡化处理后:
可以看到图像的对比度整体有的很大的提升,原本模糊不清的细节也变得清晰起来
直方图均衡化的算法实现可以分为三个步骤:
第一步:获得原图像的概率密度函数(PDF)。
1 for(i=0;i<rows;i++) 2 { 3 for(j=0;j<cols;j++) 4 { 5 n[Image[i][j]]++; //遍历整幅图像 6 } 7 } 8 for(i=0;i<L;i++) 9 {10 p[i]=n[i]/(rows*cols);11 }
其中,n[i]代表了灰度级为i的像素个数,那么p[i]的含义也就呼之欲出了,即为原始图像的概率密度函数(PDF)也称为归一化之后的直方图,L为图像的灰度级(典型取值如:256)
第二步:获得累计的归一化直方图
1 for(i=0;i<L;i++)2 {3 for(j=0;j<=i;j++)4 {5 c[i]+=p[j];6 }7 }
第三步:获得处理后的图像
1 for(i=0;i<rows;i++)2 {3 for(j=0;j<cols;j++)4 {5 result[i][j]=c[Image[i][j]]*(max - min) + min; 6 }7 }
其中max, min分别代表原图像中的最大和最小灰度级(需要遍历图像获得,前面的代码中并没有加入获得max以及min的值的代码)
数字图像处理之直方图均衡
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。