灰度图像增强算法代码_【图像处理三】图像增强算法

引言

由于受到环境,光线等的影响,拍摄的照片清晰度和对比度比较低,不能够突出图像中的重点。图像增强就是通过一定手段来增强图像的对比度,使得其中的人物或者事物更加明显,有利于后边的识别等处理。本章介绍几个传统的图像增强算法,并给出matlab实现代码,看一看不同算法的实现效果,最后再介绍一下深度学习在图像增强上的应用。

01

直方图均衡

在直方图中,如果灰度级集中于高灰度区域,图像低灰度就不容易分辨,如果灰度级集中于低灰度区域,那么高灰度就不容易分辨。为了能够让高低灰度都容易分辨,最好的办法是将图像进行转换,使得灰度级分布概率相同。这就是直方图均衡的目的。假设图像经过如下变换:

97fa282abae94b547a9ab22e75a318b8.png

其中L为灰度级。我们的目的是使得灰度级概率分布相等:

4c894691212b24a26fcd18bd8e458079.png

变换前灰度级分布和变换后灰度级分布关系为:

49ccba09514b8511e55cc4eedeaf8dfc.png

因此有:

ede2c8bc1e2899257681075379cca9f2.png

积分有:

bb6eb92a1c105c49ade5d610ae25f34f.png

用离散化表示:

daa402935a213da1ce467df0057fb73d.png

Matlab代码如下:

function histogramEqual        imgData=imread('../data/img0.jpg');    gray=rgb2gray(imgData);    imshow(gray);    imwrite(gray, '../data/gray0.jpg');    %calculate histogram    histgramData=linspace(0, 0, 256);    [grayRow, grayColumn]=size(gray);    grayPixelNumber=grayRow*grayColumn;    for i=1:grayRow        for j=1:grayColumn            histgramData(gray(i, j)+1)=histgramData(gray(i, j)+1)+1;        end    end    %histogram equalization    histogramIntegral=linspace(0, 0, 256);    for i=1:256        for j=1:i            histogramIntegral(i)=histogramIntegral(i)+histgramData(j);        end    end        for i=1:grayRow        for j=1:grayColumn            gray(i, j)=round(255*histogramIntegral(gray(i, j)+1)/grayPixelNumber);        end    end        imshow(
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值