自适应直方图均衡化

简述

自适应直方图均衡化(AHE)用来提升图像的对比度的一种计算机图像处理技术。和普通的直方图均衡算法不同,AHE算法通过计算图像的局部直方图,然后重新分布亮度来改变图像对比度。因此,该算法更适合于改进图像的局部对比度以及获得更多的图像细节

算法思想(下面看不懂,请先了解直方图均衡化

移动模板W在图像A上逐行移动,并且模板W的中心c(x0,y0)对应图像上的点f(x0,y0);计算模板W区域的直方图均衡化变化关系:g(x,y)= T(f(x,y),计算模板中心点c(x0,y0)的均衡化对应像素值:g(x0,y0) = T(f(x0,y0))。用g(x0,y0)替代f(x0,y0);逐行计算得到整幅图像的自适应直方图均衡化图像。

我的理解:就是在一个给定框内做直方图均衡化,而框内所有处理(包括均衡化)只为了这个将原始中心点像素a变化到新的像素点b。

算法实现

function [ output_img ] = my_AHE( input_img, w)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
%   自适应直方图均衡化
%   输入:input_img:待处理图像
%        w: 局部处理的窗口大小

[height,width,channels]=size(input_img);

if channels==1
    src = inpit_img;
else
    src = rgb2gray(input_img);
end

%1.图像边界扩展
padsize=[(w-1)/2,(w-1)/2];
padSrc = padarray(src,padsize,'symmetric','both');

%2.循环求解每个区域对应的值
output_img = zeros(height,width);
iter = 0;
for i=1:height
    for j=1:width
        slideWindow = zeros(w,w);
        slideWindow = padSrc(i:i+w-1,j:j+w-1);
        AHE_piexl = my_AHE_piexl(slideWindow,src(i,j));
        output_img(i,j) = AHE_piexl;
        iter = iter+1;
        disp(iter);
    end
end

output_img = uint8(output_img);


end

function [ outPiexl ] = my_AHE_piexl( window,inPiexl )
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here
%   计算局部图像的直方图均衡化的像素对应值
%   输入:window: 局部图像
%        inPiexl:输入像素
%        outPiexl:输出像素

[height,width]=size(window);

%1.像素灰度统计
NumPixel = zeros(1,256);
for i=1:height
    for j=1:width
        grayValue = window(i,j);
        NumPixel(1,grayValue+1) = NumPixel(1,grayValue+1)+1;
    end
end

%2.计算灰度分布密度
ProbPixel = zeros(1,256);  
for k=1:256
    ProbPixel(1,k)=NumPixel(1,k)/(height*width*1.0);
end

%3.计算累积分布密度
CumuPixel = zeros(1,256);  
CumuPixel(1,1) = ProbPixel(1,1);
for l=2:256
    CumuPixel(1,l) = CumuPixel(1,l-1)+ProbPixel(1,l);    
end
CumuPixel = uint8(255 .* CumuPixel + 0.5); %取整数

%4.计算灰度值映射
outPiexl = CumuPixel(inPiexl);

end

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值