基于MATLAB的图像处理技术

摘 要: 一般情况下,拍摄到的图像由于光照不足等原因,可能有较多的噪声,且边界特征不清晰。因此,我们需要对这些图像进行增强或分割处理。介于此,本文介绍了基本的图像处理技术,并用实验验证了各种方法的优缺点,对进一步学习和寻找更好图像处理方法具有实用意义。

关键词: MATLAB; 图像处理; 边缘检测;

1 引言

MATLAB是由美国的Mathworks公司推出的用于数值计算和图像处理的系统环境,具有很强的数值计算和图像处理能力。MATLAB是以矩阵为单位进行处理的,它的指令表达式与数学、工程中常用形式十分相似,故用MATLAB来解决问题要比C、C++等语言简捷得多。

MATLAB在学术界和工程界广受欢迎,其主要优势和特点有如下几方面:

(1) 友好的工作平台和编程环境;(2) 简单易用的编程语言; (3) 强大的图形处理功能;(4) 功能强大的工具箱,包括功能性工具箱和科学性工具箱。(5)良好的交互性和开放性。

2 MATLAB在图像处理中的应用

2.1图像增强

图像增强是一类基本的图像处理技术,主要目的是改善图像的视觉效果,提高图像成分的清晰度,使得图像更有利于计算机的处理。图像增强技术分为点运算增强、空域增强、频域增强三类。点运算增强包括调整灰度、直方图增强、图像间的代数运算增强等;空域增强包括平滑和锐化两种;频域增强包括低通滤波、高通滤波、同态滤波等。下面介绍

几种常用的方法。

(1) 直方图均衡化。该方法的基本思想是把原始图像的像素值均匀地分布在图像的各个区间上,使视觉效果得到改

善。直方图均衡化可用函数histeq()来实现。

如下图1.1,该图像直方图比较集中,边缘比较模糊,使用MATLAB编程,将图像进行直方图均衡化处理,结果如图2.1.2所示。原始图像及均衡化后图像的直方图如图2.1.3所示。

图2.1.1 原始图像 图2.1.2 直方图均衡化后的图像

图2.1.3 原始图像及其均衡化后的直方图

(2)对比度调整。有些图像对比度很低,灰度级集中在一个比较窄的范围内,MATLAB提供了函数imadjust()来调整图像灰度值到指定范围。将图2.1.1的灰度范围[130/255 190/255]映像到[0 0.9],结果如图2.1.4所示。

图2.1.4 对比度调整后的图像

(3) 平滑与锐化滤波。空域增强可用平滑和滤波来实现。平滑的目的有两类:一类是在提取较大的目标前去除小的细节或者是将目标内的小间断连接起来;另一类是消除一些离散性和随机性的噪声。而锐化是跟平滑相反的一类处理,目的是突出图像的边缘信息,加强图像的轮廓特征,以便于人眼和机器识别。图2.1.5揭示了空域增强的不同方法对钢珠打肥皂图像的不同处理结果。图2.1.5(b)是用低通滤波处理的结果,与原始图像对比,噪声减少,但边界特征也被减弱。图2.1.5(d)是高通滤波处理的结果,得到的边缘信息比较准确,但信息很少,且随着截止频率增大得到的信息会越少。中值滤波的结果(图2.1.5(c))比较清楚地显示了图像的边缘特征。由此得出结论:中值滤波跟高通滤波在图像处理中有较强的锐化能力,尽管在处理过程中也会减弱的图像边界特征;不同的空域增强方法在不同的图像、不同的处理过程中会有不同的效果,实际应用中应该根据经验来选用。

(a)原始图像 (b)低通滤波

(c)中值滤波 (d)高通滤波

图2.1.5 不同的滤波实验结果对比

2.2边缘检测

图像的边缘就是指图像灰度发生空间突变的像素的集合。灰度的突变一般常用导数来描述和检测。边缘检测的基本思想是先利用边缘增强算子,突出图像中的局部边缘,然后定义像素的“边缘强度”,通过设置阈值的方法提取边缘点集。但是由于噪声和图像模糊,检测到的边界可能会有间断的情况发生。所以边缘检测包含两项内容:用边缘算子提取边缘点集;在边缘点集中去除某些边缘点,填充一些边缘点,将得到的边缘点集连接为线。

图2.2.1 边缘检测的基本步骤

2.2.1 简单的边缘检测算子

常见的边缘检测算子有Roberts算子、Sobel算子、Prewitt算子、LOG算子和Canny算子等。下面具体介绍各个算子及其特点:

(1) Roberts算子 该算子是图像处理的最基本的边缘检测算子,它把任意一对相互垂直方向上的差分看成是梯度的近似求解,采用对角线方向相邻两像素之差,即某一像素点(i,j)的Roberts算子值为:

G[i,j]=︱f[i,j]-f[i+1,j+1]︱+︱f[i+1,j]-f[i,j+1]︱

用卷积模板

把上式表示为︱︱+︱︱

Roberts算子提取边缘的结果:边缘较粗,边缘定位不是很准确,容易丢失一部分边缘,同时没有经过图像平滑计算,因此不能抑制噪声。

(2) Sobel算子和Prewitt算子 Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。Sobel算子包含两组3x3的矩阵,分别为横向及纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。实际使用中,常用如下两个模板来检测图像边缘。

图2.2.2 Sobel算子

单独使用Sobel算子做边缘检测,边缘定位精度不高,有时还可能对非边缘像素的响应大于某些边缘处的响应或者响应差别不是很大,造成漏检或误检,但是它对噪声具有较好的鲁棒性。

Prewitt算子和Sobel算子提取边缘的结果差不多。在提取边缘的同时它对噪声具有平滑作用,能够抑制一定的噪声。由于Prewitt边缘检测算子是通过八个方向模板对图像进行卷积运算,因此运算量比较大。

(3)LOG算子 LOG算子是个二阶算子,将在边缘处产生一个陡峭的零交叉。LOG算子在对图像进行差分运算之前,先对图像使用高斯低通滤波器进行平滑处理,以减少噪声,因此缓解了一般差分对噪声响应很敏感的问题。然后使用Laplacian算子找出图像中的陡峭边缘,可以得到较好的边缘定位精度,但也会造成边缘被漏检的情况。另外,它对噪声过于敏感,使它的使用大为受限。

图2.2.3 Laplacian算子

(4) Canny算子 Canny算子是根据对信噪比与定位乘积进行测度,得到最优化逼近的一阶算子。其实质是用一个准高斯函数做平滑运算,然后以带方向的一阶微分算子定位导数最大值。Canny 方法使用两个阈值来分别检测强边缘和弱边缘,且当弱边缘与强边缘相连时,弱边缘才会包含在输出中。

Canny算子提取的边缘最为完整,而且边缘的连续性很好,定位比较精确。但在实际工作应用中编程较为复杂且运算较慢。

2.2.2 边缘检测应用

在MATLAB中,使用edge()函数检测边缘。edge()函数在检测边缘时可以指定一个灰度阈值,只有满足这个阈值

条件的点才视为边界点。综合上述几种算子,编写相应代码,对图2.1.1进行边缘检测,结果如图2.2.4。

(a)原始图像 (b)sobel算子

(c) Roberts算子 (d) prewitt算子

(e) LOG算子 (f) canny算子

图2.2.4 各种算子检测结果

显然,由图2.2.4看,Roberts算子、Sobel算子、Prewitt算子的处理结果连续性不好,LOG算子的处理结果不精确,而Canny算子的处理结果更多更精确地保留了图像的边缘特征,具有较好的连续性。

3 结论

图像中目标的边缘和轮廓是图像的重要特征的综合,图像处理是一些模糊图像能被有效利用的前提条件。本文只是应用了MATLAB图像处理工具箱的部分功能,除以上介绍的一些基本的图像处理功能外,MATLAB还有许多基于数学形态学与二值图像的操作函数, 如二值图像的膨胀运算dilate()函数、腐蚀运算erode()函数等,本文不再作详细介绍。由此可见,MATLAB语言简洁,功能强大且涉及的专业领域广泛,利用它的图形处理与分析工具,综合多种算法,对图像进行处理,可以大大提高实验效率,为工作提供良好的条件。

基于MATLAB的图像处理技术相关推荐

  1. 基于matlab的硅晶体模型,基于Matlab的图像处理技术识别硅太阳电池的缺陷

    第 44 卷 第 7 期 2010 年 7 月 上 海 交 通 大 学 学 报 JOURNAL OF SHANGHAI J IAOTON G UNIVERSITY Vol. 44 No. 7 Jul. ...

  2. matlab图像类论文,基于matlab图形图像处理技术毕设论文.doc

    基于matlab图形图像处理技术毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域的个别 ...

  3. matlab图形图像处理论文,基于matlab图形图像处理技术-本科毕设论文.doc

    基于matlab图形图像处理技术-本科毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域 ...

  4. 基于MATLAB的图像处理的课程设计

    基于MATLAB的图像处理的系统 课题介绍 数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应 ...

  5. matlab关于图像增强的毕业论文,基于MATLAB的图像增强技术处理毕业论文

    基于MATLAB的图像增强技术处理毕业论文 图像增强技术综述内容摘要数字图像处理是指将图像信号转换成数字格式并利用计算机对其进行处理的过程.图像增强是数字图像处理的过程中经常采用的一种方法,它对提高图 ...

  6. 基于MATLAB GUI图像处理系统的设计与实现

    基于MATLAB GUI图像处理系统的设计与实现 摘; 要:MATLAB作为算法开发及数据可视化的交互式工具,在数字图像处理方面应用广泛,并集成了具有多种算法的图像处理工具箱.本文基于MATLAB图像 ...

  7. 基于MATLAB的图像处理研究

    基于MATLAB的图像处理研究 1研究目的 由于现阶段,随着科技的发展, 计算机技术的应用已经渗透到社会的方方面 面,而与图像有关的通信.网络.传媒.多媒体等已经给人们的生活带来巨大的 变化.放观长远 ...

  8. 基于MATLAB的图像处理系统

    目录 设计目的-------..-------.----3 设计要求-------.----------.-.3 设计的内容------..---------.--3 题目分析------------ ...

  9. 【图像处理】基于形态学的图像处理技术

    目录 基于形态学的图像处理技术 基于形态学的图像处理技术 基于形态学的图像处理技术,可以实现对绿豆进行计数.下面是一份基于 MATLAB 的示例代码: % 读入原始图像 img = imread('g ...

最新文章

  1. Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型
  2. LNMP架构之PHP——MemCache对PHP页面的缓存加速优化
  3. python点到向量的距离,夹角
  4. 从ASP.NET传递参数给水晶报表
  5. codility上的问题(26) Hydrogenium 2013
  6. tableau实战系列(九)-用 ZN 函数处理数据缺失点
  7. Android深入四大组件(八)广播的注册、发送和接收过程
  8. jQuery 之 $(this) 出了什么问题?
  9. idea 添加 golang 项目的 gopath
  10. JDK 13 的 12 个新特性,真心厉害和好用
  11. 实战爬虫:python爬虫学习笔记之爬取搜狗|微信文章——动态网页爬取
  12. PDFcrack暴力破解pdf密码
  13. 打印机服务器不支持1020,Win7系统安装hp1020打印机后无法使用如何解决
  14. Android串口调试工具ComAssistant下载
  15. 计算机word中如何加入水印?
  16. [Unity3D]Unity3D游戏开发之从《魂斗罗》游戏说起(上)——目标追踪
  17. MySQL 行级锁(行锁、临键锁、间隙锁) 小白教程
  18. 刚性方程组的mma求解
  19. docker-compose和docker swarm容器间网络不互通的情况
  20. MySQL 中间件 Mycat

热门文章

  1. 使用增强的图像多分类模型
  2. Flash鼠绘入门第一课:认识鼠绘
  3. 大端小端:测试本机的数据存储形式
  4. 测试上网上下行的软件,‎App Store 上的“网速测试大师-测网速首选”
  5. 广州大学大学物理练习7 振动力学
  6. 成都市武侯区创业路和九兴大道交汇处走丢一只狗狗
  7. python实现微信跳一跳辅助工具
  8. Postgresql vacuum最佳实践
  9. Vue - 下载打印功能,将页面下载打印为 pdf 格式文件(vue-print-nb)
  10. 2022-4-10 Leetcode 45.跳跃游戏II