图像中每个区域的直方图均衡

时间:2013-01-20 19:07:37

标签: histogram cdf

我需要一些帮助..如何使用matlab创建这个应用程序..使用自适应对比度增强的图像增强..这是我将遵循的提议方法..

这里提出的方法使用HE以受控和局部的方式拉伸暗图像中的细节,同时改善较亮图像中的整体对比度。它被称为自适应对比度增强(ACE),因为在每个帧中产生局部自适应效果。所提出的算法首先将亮度级别的直方图划分为三个区域 - 暗,中和亮。这些地区的面积相同。然后使用HE独立地处理这三个区域中的每一个。

我仍然没有得到为每个区域使用直方图均衡的解决方案..我juz得到了正常直方图均衡的代码...这是我的代码..

K = handles.GRAY;

numofpixels=size(K,1)*size(K,2);

L=uint8(zeros(size(K,1),size(K,2)));
freq=zeros(256,1);
probf=zeros(256,1);
probc=zeros(256,1);
cum=zeros(256,1);
output=zeros(256,1);

%freq counts the occurrence of each pixel value.

%The probability of each occurrence is calculated by probf.

for i=1:size(K,1)
    for j=1:size(K,2)
        value=K(i,j);
        freq(value+1)=freq(value+1)+1;
        probf(value+1)=freq(value+1)/numofpixels;
    end
end

sum=0;
no_bins=255;

%The cumulative distribution probability is calculated. 

for i=1:size(probf)
   sum=sum+freq(i);
   cum(i)=sum;
   probc(i)=cum(i)/numofpixels;
   output(i)=round(probc(i)*no_bins);
end

for i=1:size(K,1)
    for j=1:size(K,2)  
      L(i,j)=output(K(i,j)+1);     
    end
end

axes(handles.axes3);
imshow(L);

axes(handles.axes4);
imhist(L);

0 个答案:

没有答案