基于MATLAB的图像增强

原创 2015年11月21日 19:02:57

 图像增强中两类重要的处理方法:一种是灰度变换,另一种是直方图处理。

       一、灰度变换

  灰度变换通常可分为线性变换、分段线性变换和非线性变换。我们将分别给出实验,来查看其处理效果。

      1、线性变换

例1:我们对一张较暗的图片进行简单的加法,提高他的亮度,从而可以看到隐藏在黑暗中的细节。

代码:

I=imread('F:\My_documents\PRIVATE\Matlab\bright_dark.jpg');

 figure,imshow(I);

 title('bright_dark.jpg');

 J=I+100;

 figure,imshow(J);

 title('给每个像素增加100');

效果图:

                                  

 2、分段线性变换

例2:下面是分段线性变换的算法及变换前后的对比图像。

对比图像:

                                         

3、非线性变换

例3:下面是一个对数变换的算法和实验效果图。

I=imread('F:\My_documents\PRIVATE\Matlab\pic1.jpg');   %读入图像

I=mat2gray(I);   %对数变换不支持uint8类型的数据,将一个矩阵归一化为灰度图像的数据格式

J=log(I+1);

subplot(1,2,1);

imshow(I);

title('原图像');

subplot(1,2,2);

imshow(J);

title('对数变换后的图像');

效果图:

4、还有一种比较常用的线性变换方法——图像取反

取反操作适于增强嵌入暗色区域的白色或灰色细节,当整幅图像偏暗时,效果尤为明显。

例3: 

I=imread('F:\My_documents\PRIVATE\Matlab\bone.jpg');%读入图像

subplot(1,2,1);

imshow(I);

title('原图像');

J=imcomplement(I);

subplot(1,2,2);

imshow(J);

title('取反后的图像');

效果对比:

相同的效果可由以下代码实现。

灰度变换可使图像动态范围增大,对比度得到扩展,使图像清晰、特征明显,是图像增强的重要手段之一。它主要利用点 运算来修正像素灰度,由输入像素点的灰度值确定相应输出点的灰度值,是一种基于图像变换的操作。灰度变换不改变图像内 的空间关系,除了灰度级的改变是根据某种特定的灰度变换函数进行之外,可以看作是“从像素到像素”的复制操作。

二、直方图变换

图像的灰度统计直方图是一种函数,它表示数字图像中每一个灰度级与该灰度级出现的频数的关系。图像的直方图显示了图像的外貌,暗的图像,其直方图的组成部分集中在灰度较低的一侧;明亮的图像,其直方图的组成部分则集中在灰度级较高的一侧。对比度低的图像,其直方图跨度较窄且集中在灰度级的中部;而高对比度的图像,其直方图覆盖较宽的灰度级范围并且分布较为均匀。因此,为使图像清晰,自然的想法是把灰度级的分布拉开,是灰度级层次分明,力图使其均匀分布,这相当于增加了图像的对比度。有两种重要的直方图处理方法:直方图均衡化和直方图匹配。

1、直方图均衡化

直方图均衡化旨在寻找一种灰度级变换关系,使得变换后的灰度图像的各级灰度的出现概率相同或相近。由严格的数 学理论推导可知,利用累积分布函数作为变换函数可以产生灰度级具有均匀分布的图像。

效果图:

由实验结果可知:

(1)   经过直方图均衡化后,图像的对比度明显增强了,视觉效果明显改善。

(2)   原始图像较暗且占据的灰度范围比较窄。均衡化后的图像的直方图的灰度值范围明显扩大。

(3)   经过histeq 均衡化后的图像的直方图趋于平坦,灰度级有所减少,某些灰度进行了合并。

2、直方图的匹配

直方图均衡化的优点在于能完全自动化,不需要人工参与,但其缺点是只能产生一种近似均衡的直方图。有时,人们希望修改一副图像的直方图,使得与给定的直方图匹配,或者具有一种预先的函数形状,也就要用直方图的匹配

例6:直方图的匹配过程可分为以下几步:

     步骤:

1、求给定函数的累积直方图y;

2、求原图像的累积直方图J;

3、通过J=histeq(I,hgram) 求得匹配后的图像。

效果图:


版权声明:本文为博主原创文章,未经博主允许不得转载。

几个命令行调用VS编译器的例子

CL.exe 的命令行编译断断续续接触了几次,每次都忘,每次都重新查。每次都搞不清楚语法,尤其是传给linker的参数。因为网上所有的文章都是一样的,都是详细的参数列表,都是没有实例。为了和大众保持一...

matlab实现图像增强

下面是根据我自己的工作整理的空间域和频率域的图像增强,首先将彩色图像转化为灰度图像,matlab 代码如下: clear all I1=imread('1.jpg'); ...

图像增强matlab示例

  • 2013年09月24日 19:47
  • 16KB
  • 下载

Matlab编程实现图像增强与去噪

Matlab编程实现图像增强与去噪            Matlab中为我们提供了大量的函数,以方便我们对设计的算法进行验证,方便我们进行科学研究等等。使用Matlab处理数字图像也是相当方便的,它...

小波图像增强matlab源代码

  • 2008年10月06日 16:10
  • 417B
  • 下载

【转】 直方图规范化用于图像增强 matlab程序

直方图规范化用于图像增强 matlab程序 分类: 机器视觉2012-05-29 17:56 1833人阅读 评论(0) 收藏 举报 matlabplotfunction 题目要...

图像增强剂matlab实现

图像增强技术主要包括:直方图修改处理,图像平滑处理,图像尖锐化处理,彩色图像处理。从纯技术上讲主要有两类:1)频域处理法 2)空域处理法 ;频域处理法主要是卷积定理,采用修改图像傅立叶变换的方法实现对...

(3)MATLAB 空间域图像增强

方法包括:直方图修正,灰度变换,图像平滑化,图像锐化等。     卷积时模板是相对中心点做镜像后再对F位于模板下的子图像作加权和的。只有模板本身是关于中心点对称,相关和卷积结果才会相同。% 均值滤波 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于MATLAB的图像增强
举报原因:
原因补充:

(最多只允许输入30个字)