美文网首页程序员
直方图均衡化Histogram Equalization

直方图均衡化Histogram Equalization

作者: Mikito_k | 来源:发表于2016-07-17 15:27 被阅读221次

    之前在用LBP做单样本人脸识别的时候,对于光照角度太大或者光线太暗的情况并不是很好,出错的概率还是很大,老师推荐用直方图均衡化先对大图做一下预处理。 

    直方图均衡化的主要思想是对像素个数较多的灰度级进行展宽,而对于像素个数较少的灰度级进行压缩。

    在处理过程中,直方图均衡化分为四个部分:

    (1) 统计每个像素点的个数并计算分布密度

    (2)计算直方图分布

    (3)计算每个像素值均衡化之后的值,并取整

    (4) 均衡化原始图片

    Matlab具体实现代码如下:

    function equ_image = equalization( image )

        [row,column] = size(image);、

         %统计像素值的分布密度

         pixelNum=zeros(1,256);

         for i=0:255

              pixelNum(i+1)=length(find(image==i))/(row*column*1.0);

         end

         %计算直方图分布

         pixelEqualize=zeros(1,256);

         for i=1:256

              if i==1

                  pixelEqualize(i)=pixelNum(i);

              else

                  pixelEqualize(i)=pixelEqualize(i-1)+pixelNum(i);

              end

         end

         %取整

         pixelEqualize=round(256 .* pixelEqualize +0.5);

         %均衡化

         for i=1:row

              for j=1:column

                   equ_image(i,j)=pixelEqualize(image(i,j)+1);

              end

          end

    end

    例子:

    原来未处理的图片 处理之后的图片

    相关文章

      网友评论

        本文标题:直方图均衡化Histogram Equalization

        本文链接:https://www.haomeiwen.com/subject/jpaujttx.html