图像处理之直方图均衡化

直方图均衡化:将原图像的直方图通过变换函数修正为均匀得 直方图,使得各灰度级具有相同的出现頻数,均衡化后的图像看起来就更清晰(提高对比度)。

matlab实现函数:histeq,详见:http://www.ilovematlab.cn/thread-1499-1-1.html;

具体实现步骤:

      首先计算图像中各个像素值的出现的概率,然后计算累计概率,最后根据累计概率来计算最后的梯度分布,根据梯度分布来对图像的每个像素进行映射。具体实现如下:

img = imread('F:/timg.jpg');
[X,Y] = size(img);
numPix = zeros(1,256);
%计算像素的数量
for i = 1:X
    for j = 1:Y
        numPix(1,img(i,j)) = numPix(1,img(i,j))+1;
    end
end
prob = zeros(1,256);
%计算像素的概率
for i = 1:256
    prob(1,i) = numPix(1,i)/(X*Y*1.0);
end
%计算累计概率
probAddup = zeros(1,256);
probAddup(1,1) = prob(1,1);
for i = 2:256
    probAddup(1,i) = probAddup(1,i-1)+prob(1,i);
end
%将每个概率映射到对应的梯度,最后的映射梯度也为255
gradPix = uint8(probAddup .* 255 + 0.5);
%像素映射
newImg = uint8(zeros(X,Y));
for i = 1:X
    for j = 1:Y
        newImg(i,j) = gradPix(img(i,j));
    end
end
figure;
imshow(img);
figure;
imshow(newImg);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值