zoukankan      html  css  js  c++  java
  • 数字图像处理之直方图均衡

    直方图均衡化的原理在这里就不赘述了,网上有多此类的博文,也可以参考冈萨雷斯的《数字图像处理》(第三版)一书中的第三章中的相关介绍;

    这里演示一下直方图均衡化的效果:

    原图像如下:

    经过直方图均衡化处理后:

    可以看到图像的对比度整体有的很大的提升,原本模糊不清的细节也变得清晰起来

    直方图均衡化的算法实现可以分为三个步骤:

    第一步:获得原图像的概率密度函数(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的值的代码)

  • 相关阅读:
    [leetCode]100.相同的树
    [leetCode]88.合并两个有序数组
    [leetCode]83.删除排序链表中的重复元素
    排序算法总结
    [leetCode]69. x 的平方根
    POJ 1151 Atlantis
    POJ 3468 A Simple Problem with Integers
    SGU 271 Book Pile
    POJ 2970 The lazy programmer
    FZU 2254 英语考试
  • 原文地址:https://www.cnblogs.com/tcysky/p/5840062.html
Copyright © 2011-2022 走看看