《图像处理系列----灰度图像的直方图均衡化》

此文章属于原创文章,转载请注明:http://blog.csdn.net/iamsheldon   谢谢!!!大笑

首先,在进行程序设计之前我们来了解一下的直方图均衡化的原理。





其中最重要的是最后一条公式





以下是实现程序:


/*******************************************************
*函数功能:灰度图像均衡化 
*参数:  gray_in指向输入数据的指针  
         gray_out指向输出数据的指针
         size 为图片的大小
*说明: gray_in与gray_out可以相等 
*返回值:无 
*********************************************************/
void  zjGrayHistQual(BYTE *gray_in,BYTE *gray_out,Size size)
{
  int i;
  int j;
  int height;
  int width;
  long hist[256];
  long pixelnum=0;
  long nnum=0;
  double pr;
  height=size.height;
  width=size.width;
  pixelnum=height*width;
  //直方图初始化 
  for(i=0;i<256;i++)
   hist[i]=0;
  //计算图像的直方图
  for(i=0;i<height;i++)
   for(j=0;j<width;j++)
   {
     ++hist[*(gray_in+i*width+j)];  
   } 
  //计算变换后的灰度值 
  for(i=0;i<256;i++)
  {
     nnum+=hist[i];
     pr=(double)nnum/pixelnum;
     hist[i]=(BYTE)255*pr;
  }
  //根据结果,替换原图像的灰度
  for(i=0;i<height;i++)
   for(j=0;j<width;j++)
   {
     *(gray_out+i*width+j)=hist[*(gray_in+i*width+j)];
   } 
} 

下面是效果:





说明:左边是处理前,右边是处理后。

大家看效果是不是很明显呢,还可以偷笑,这种处理一般出现在图像处理前期,为后续的
的处理 如边缘提取之类的做准备。
   文章到此结束,其实我也是一只菜鸟,刚刚入门而已,所以献丑,希望大家可以交流交流。我们共同进步,为解放世界做贡献(开玩笑啦)。


  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值