【图像增强】基于matlab直方图均衡化图像增强【含Matlab源码 960期】

举报
海神之光 发表于 2022/05/29 01:55:01 2022/05/29
【摘要】 一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【图像增强】基于matlab直方图均衡化图像增强【含Matlab源码 960期】 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证...

一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【图像增强】基于matlab直方图均衡化图像增强【含Matlab源码 960期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、图像增强及直方图均衡化简介

1 图像增强
图像增强是对图像的某些特征,如边缘、轮廓、对比度等进行强调或锐化,以便于显示、观察或进一步分析与处理。通过对图像的特定加工,将被处理的图像转化为对具体应用来说视觉质量和效果更“好”或更“有用”的图像。
图像增强是最基本最常用的图像处理技术,常用于其他图像处理的预处理阶段。
在这里插入图片描述
(1)高通平滑、低通锐化;平滑模糊、锐化突出图像细节
(2)滤波器还有带通、带阻等形式
(3)根据噪声(椒盐噪声、高斯噪声…)的不同,选用不同的滤波
(4)邻域有4-邻域、对角邻域、8-邻域,相对应的有邻接,即空间上相邻、像素灰度相似
(5)图像边缘处理:忽略不处理、补充、循环使用
(6)目前尚未图像处理大多基于灰度图像

2 直方图均衡化
直方图均衡化主要用于增强灰度值动态范围偏小的图像的对比度。该方法的基本思想是把原始图像的灰度统计直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。数字图像是离散化的数值矩阵,其直方图可以被视为一个离散函数,它表示数字图像中每一灰度级与其出现概率间的统计关系。假设一幅数字图像f(x,y)的像素总数为N,ra表示第k个灰度级对应的灰度,nk表示灰度为r的像素个数即频数,用横坐标表示灰度级,用纵坐标表示频数,则直方图可定义为®=,其中,P(n)表示灰度ry出现的相对频数即概率。直方图在一定程度上能够反映数字图像的概貌性描述,包括图像的灰度范围、灰度分布、整幅图像的亮度均值和阴暗对比度等,并可以此为基础进行分析来得出对图像进一步处理的重要依据。直方图均衡化也叫作直方图均匀化,就是把给定图像的直方图分布变换成均匀分布的直方图,是一种较为常用的灰度增强算法(2。直方图均衡化概括起来
包括以下三个主要步骤。
(1)预处理。输入图像,计算该图像直方图。
(2)灰度变换表。根据输入图像的直方图计算灰度值变换表。
(3)查表变换。执行变换x’=H(x),表示对步骤1中得到的直方图使用步骤2得到的灰度值变换表进行查表变换操作,通过遍历整幅图像的每一个像元,将原始图像灰度值x放入变换表H(x)中,可得到变换后的新灰度值x’。
根据信息论的相关理论,我们可以知道图像经直方图均衡化后,将会包含更多的信息
量,进而能突出某些图像特征。假设图像具有n级灰度,其第i级灰度出现的概率为pi,
则该级灰度所含的信息量为:
在这里插入图片描述
整张图片的信息量为
在这里插入图片描述
信息论已经证明,具有均匀分布直方图的图像,其信息量H最大。即当
Po=Pi=…=pn-i=1/n时,(1.2)式有最大值。

三、部分源代码

close all;clear all;clc
a=imread('lena.jpg');
subplot(2,3,1);imshow(a);title('原图');
subplot(2,3,4);imhist(a);title('原图直方图');
b=histeq(a,256);
subplot(2,3,2);imshow(b);title('histeq函数直接均衡化');
subplot(2,3,5);imhist(b);title('直接均衡化后直方图');

I=a;
[m,n]=size(I);
h = zeros(1,256);
%I=double(I);
for i = 1:m
  for j = 1:n
    h(I(i,j)+1)=h(I(i,j)+1)+1;%统计原始图像各灰度出现次数,对应存放在h中
    end
end
new=zeros(1,256);%存放新灰度值个数
for i=1:256
    temp=0;
    for j=1:i
        temp=temp+h(j);%计算各灰度值的累计分布
    end
    new(i)=floor(temp*255/(m*n));%计算新的灰度值
end
y=zeros(m,n);
for i=1:m
    for j=1:n
        y(i,j)=new(I(i,j)+1);%由新的灰度值得到新的图像
    end
end

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

四、运行结果

在这里插入图片描述

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/117464925

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。