找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9216|回复: 3
收起左侧

MatLab图像增强实验

[复制链接]
ID:161768 发表于 2017-7-29 03:45 | 显示全部楼层 |阅读模式

图像增强实验

一、实验目的

1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。

2、学会对图像直方图的分析。

3、掌握直接灰度变换的图像增强方法。

4、掌握直方图均衡化。

5、采用均值滤波、中值滤波实现图像平滑。

6、采用梯度方法、拉普拉斯算子、Sobel 算子和 Prewitt 算子实现图像锐化。

二、实验原理及知识点

图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直接灰度尺度变换、直方图修改处理、图像平滑化处理、图像尖锐化处理等。

1、 灰度变换

灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。

在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理。若假定原图像f(x, y)的灰度范围为[a, b],希望变换后图像 g(x, y)的灰度范围扩展至[c, d],则线性变换可表示为:    1.001.jpg

2、 直方图变换

直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。

依据定义,在离散形式下, 用rk 代表离散灰度级,用pr(rk)代表(r),并且有下式成立      1.002.jpg              1.003.jpg rk 1.004.jpg 1     k=0,1,2,…l-1

    式中: 为图像中出现级灰度的像素数,n 是图像像素总数,而即为频数。

             1.005.jpg 1.006.jpg   k=0,1,2,…l-1

3、 空域滤波

空域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。空域滤波一般分为线性滤波和非线性滤波两类。根据功能又主要分为平滑滤波器和锐化滤波器

空间滤波器都是基于模板卷积,其主要工作步骤是:

1) 将模板在图中移动,并将模板中心与图中某个像素位置重合;

2) 将模板上的系数与模板下对应的像素相乘;

3) 将所有乘积相加;

4) 将和(模板的输出响应)赋给图中对应模板中心位置的像素。

4、 图像平滑

图像平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。平滑是用低通滤波器来完成,在空域中全是正值。

1) 均值滤波

均值滤波也称为线性滤波,其采用的主要方法为领域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=1/m ∑f(x,y),m为该模板中包含当前像素在内的像素总个数。

2) 中值滤波

中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。

5、 图像锐化

锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。

1) 梯度法

邻域平均可以模糊图像,因为平均对应积分,所以利用微分可以锐化图像。图像处理中最常用的微分方法是利用梯度。梯度算子是一种一阶微分算子,常用的梯度算法有经典梯度算法和Roberts梯度算法。常用的其他一阶微分算子有sobel 算子、prewitt 算子等。

2) 拉普拉斯算子

拉普拉斯算子是一种二阶微分算子,它的模板中心系数都是正的,而周围的系数都是负的,所有的系数之和为0。

对3×3 的模板来说,典型的系数取值为:         

前者为离散拉普拉斯算子的模板,后者为扩展模板。

三、实验仪器与软件

1、PC 计算机

2、MatLab 软件/语言包括图像处理工具箱(Image Processing Toolbox)

3、实验所需要的图片

四、实验内容及步骤

1、灰度变换和伽马校正

  • 图像数据读入 pic=imread(‘rice.bmp’);
  • pic1=imadjust(pic…);通过图像直方图比较 pic pic1 的灰度差异
  • pic2=imadjust(pic,[],[],gama);其中 gama>1 0<gama

函数:imadjust()

功能:调整图像灰度值或颜色映像表,也可实现伽马校正。

语法: J = imadjust(I,[low_in high_in],[low_out high_out],gamma)

程序

       pic=imread('E:abcice.bmp');

      imshow(pic);

      [count,x]=imhist(pic,32);

       stem(x,count);

      pic1=imadjust(pic);

      imshow(pic1);

      [count,x]=imhist(pic1,32);

       stem(x,count);

      pic1=imadjust(pic,[0.2 0.5],[0.2 0.9],0.5);

      imshow(pic1);

     [count,x]=imhist(pic1,32);

      stem(x,count);

      pic2=imadjust(pic,[0.2 0.4],[0.2 0.9],0.4);

      imshow(pic2);

      [count,x]=imhist(pic2,32);

      stem(x,count);

Pic

   1.007.jpg

Pic1

    1.008.jpg

参数gama的作用:gama函数可以根据不同的取值选择性地增强低灰度区域的对比度或是高灰度区域的对比度

2、直方图均衡

  • pic3=histeq(pic); pic4=adapthisteq(pic); 显示原图像的直方图和经过均衡化处理过

的图像直方图,比较两种均衡的效果差异

函数:histeq()

功能:直方图均衡。

语法: J = histeq(I,hgram)将原始图像I的直方图变成用户指定的向量

hgram。hgram中的各元素的值域为[0,1]

J = histeq(I,n)指定直方图均衡后的灰度级数n,默认值为64。

程序

    pic3=histeq(pic);

   imshow(pic3);

   [count,x]=imhist(pic3,32);

   stem(x,count);

  pic4=adapthisteq(pic);

  imshow(pic4);

   [count,x]=imhist(pic4,32);

  stem(x,count);

原图像

   1.009.jpg

1.010.jpg

均衡化处理之后

1.011.jpg

1.012.jpg

3、图像平滑

  • 输入图像及灰度化 pic=imread(‘pic.name’); graypic=rgb2gray(pic);

   pic=imread('E:aaalena512color.JPG');

   imshow(pic);

   graypic=rgb2gray(pic);

   imshow(graypic);

1.013.jpg

1.014.jpg

  • 利用 imnoise 命令在图像中添加噪声
  • 给像添加高斯噪声 noisepic=imnoise(graypic,’gaussian’,0,p);其中 p 是噪声标准差

       noisepic=imnoise(graypic,'gaussian',0,1);

        imshow(noisepic);

        noisepic=imnoise(graypic,'gaussian',0,0.5);

        imshow(noisepic);

1.015.jpg

1.016.jpg

  • 给图像添加椒盐噪声 noisepic=imnoise(graypic, ‘salt & pepper’,p);其中 p 是噪声密度

noisepic=imnoise(graypic, 'salt & pepper',1);

imshow(noisepic);

noisepic=imnoise(graypic, 'salt & pepper',0.5);

imshow(noisepic);

1.017.jpg

1.018.jpg

  • 均值滤波
  • 构造平滑卷积模版 H=fspecial(‘average’,n),其中 n 是滤波器大小
  • 图像均匀滤波 denoisepic=imfilter(noisepic,H);
  • 选取不同参数值 p n,比较结果的差异

H=fspecial('average',360);

imshow(H);

H=fspecial('average',32);

imshow(H);

denoisepic=imfilter(noisepic,H);

imshow(denoisepic);

1.019.jpg

1.020.jpg

1.021.jpg

  • 中值滤波
  • 图像中值滤波 denoisepic=medfilt2(noisepic,[n,n]);其中 n 是模版大小
  • 选择合适的参数值 p n,进行中值滤波
  • 比较均值滤波和中值滤波的差异

denoisepic=medfilt2(noisepic,[360,360]);

imshow(denoisepic);

denoisepic=medfilt2(noisepic,[32,32]);

imshow(denoisepic);

1.022.jpg

4、图像锐化

  • 输入图像及灰度化 pic=imread(‘pic.name’); graypic=rgb2gray(pic);
  • 查阅 edge 命令,通过参数选取用不同方法对上述灰度图求取边缘,并比较不同方法的

边缘检测性能。包括梯度方法、拉普拉斯算子、Sobel 算子和 Prewitt 算子。


pic=imread('E:aaaice.bmp');

imshow(pic)

BW1 = edge(pic,'sobel');

imshow(BW1)

BW2 = edge(pic,'prewitt');

imshow(BW2);

BW3 = edge(pic,'roberts');

imshow(BW3);

BW4 = edge(pic,'log');

imshow(BW4);

BW5 = edge(pic,'canny');

imshow(BW5);



1.023.jpg

1.024.jpg



1.025.jpg

1.026.jpg



五、实验报告要求

1. 简述实验目的和实验原理;

2. 描述实验基本步骤,给出各个步骤中取得的实验结果和源代码,叙述各段程序功能;

3. 改变有关函数的参数,分析比较实验结果,进行必要的讨论;

六、思考题/问答题

1.直方图是什么概念?它反映了图像的什么信息?

2.直方图均衡化是什么意思?它的主要用途是什么?

3.结合实验内容,定性评价均值滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?

4.结合实验内容,定性评价滤波窗口对去噪效果的影响?

答:1.直方图是指将一个变量的不同等级的相对频数用矩形块标绘的图表,反映了数字图像中每一灰度级和它出现频率间的关系。

   2.直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。其主要用途是通过修改直方图的方法增强图像。



完整论文下载(word格式 可编辑):

图像增强.rar (3.43 MB, 下载次数: 28)

回复

使用道具 举报

ID:104095 发表于 2019-6-4 09:23 | 显示全部楼层
还不错的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表