图像增强-直方图增强

灰度直方图

  • 概念
    对应每一个灰度值,统计该灰度值的像素数,据此绘制的像素数-灰度值图形。

直方图均衡化(histogram equalization)

  • 意义

    得到灰度直方图均匀分布的新图像,灰度分布区域均匀,图像所占的像素灰度间距拉大,加大图像反差,改善图像视觉效果,达到增强效果。

  • 步骤

    1. 计算原始图像直方图。
      h(rk)=nkP(rk)=nk/n
    2. 计算直方图累计分布曲线。
      T(rk)=j=0kPr(rj)=j=0knj/n
    3. 用累计分布曲线做变换函数进行图像灰度变换。
      sk=levelT(rk)

      level:灰度等级,例如256。
  • 效果

    图像增强-直方图增强_第1张图片

直方图规则化(histogram specification)

  • 概念

    得到具有特定形状的直方图的图像。

  • 原理

    对原始图像进行直方图均衡化处理.

    sk=T(rk)=j=0kPr(rj)=j=0knj/n

    对于目标图像也采用同样的方法进行均衡化处理.
    vk=G(rk)=j=0kPz(zi)=j=0kni/n

    由于对目标图像和原始图像都进行了均衡化处理,因此具有相同的分布密度,即
    sk=vk

    因而可以用原始图像均衡化以后的灰度级s代表v,即
    zk=G1(vk)=G1(sk)=G1(T(rk))

    所以可以依据原始图像均衡化后的图像的灰度值得到目标图像的灰度级z。

  • 步骤

    1. 计算原始图像(hist),参考图像(hisRef)直方图。
      h(rk)=nkP(rk)=nk/n
    2. 计算原始图像(cdf),参考图像(cdfRef)直方图累计分布曲线。
      T(rk)=j=0kPr(rj)=j=0knj/n
    3. 原始图像累计分布曲线对应灰度级用参考图像累计分布曲线最相近点处灰度级代替。
  • 效果

    图像增强-直方图增强_第2张图片

code

clear all
%% ref picture
imRef=imread('1.jpg');%读取图像 
imRef=rgb2gray(imRef);
histRef= imhist(imRef);
cdfRef= cumsum(histRef) / numel(imRef);
%% picture
load ('lena512.mat');
pic=uint8(lena512);
hist=imhist(pic);
cdf=cumsum(hist)/ numel(pic);
%% histogram equalization
MEQ=ceil(cdf*255);
picEq=MEQ(pic+1);
picEq=uint8(picEq);
histEq=imhist(picEq);
%% histogram specification
MSP=zeros(1,256);
for i=1:length(cdf)
    [~,ind]=min(abs(cdf(i)-cdfRef));
    MSP(i)=ind-1;
end
picSp=MSP(pic+1);
picSp=uint8(picSp);
histSp=imhist(picSp);

figure(1)
subplot(221)
imshow(pic,[0 255]);
title('original image');
subplot(222)
imhist(pic);
title('original histogram');
subplot(223)
imshow(picEq,[0,255])
title('equalization image');
subplot(224)
imhist(picEq);
title('equalization histogram ');

figure(2)
subplot(321)
imshow(pic,[0 255]);
title('original image');
subplot(322)
imhist(pic);
title('original histogram');

subplot(323)
imshow(imRef,[0 255]);
title('reference image');
subplot(324)
imhist(imRef);
title('reference histogram');

subplot(325)
imshow(picSp,[0,255])
title('specification image');
subplot(326)
imhist(picSp);
title('specification histogram ');


你可能感兴趣的:(图像预处理)