基于MATLAB的数字图像处理与分析

2014-10-27 16:33李晶路付云宝胡松
无线互联科技 2014年9期
关键词:边缘检测图像增强

李晶路 付云宝 胡松

摘 要:MATLAB是当今最强大的一款科技应用软件之一。本文简单介绍了利用MATLAB进行图像处理的特点,并举例说明了MATLAB在图像处理中图像增强和边缘检测常用的一些方法。

关键词:MATLAB;图像增强;边缘检测

图像处理是人类获取图像内部所包含的信息的重要手段。它主要是指利用计算机将图像转换成数字信号并进行一系列处理的过程。利用图像处理技术能够使人们获得任意波长上所测得的图像,当今图像处理技术已经运用到各个领域内,尤其是在航空航天、生物制药、工程检测、军事通讯、工业生产等领域已经取得了一系列的重要成就。

1 MATLAB圖像处理的特点

MATLAB是由美国MathWorks公司推出的一款主要用于数学计算和图像处理的软件。经过多年的实践应用MATLAB已经成为目前工程中最重要的图像处理软件。

MATLAB图像处理工具箱是利用MATLAB强大的数学计算能力,为广大用户提供了一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。MATLAB图像处理工具箱函数主要包括以下15类:(1)图像显示函数;(2)图像文件输入、输出函数;(3)图像几何操作函数;(4)图像像素值及统计函数;(5)图像分析函数;(6)图像增强函数;(7)线性滤波函数;(8)二维线性滤波设计函数;(9)图像变换函数;(10)图像邻块及块操作函数;(11)二值图像操作函数;(12)基于区域的图像处理函数;(13)颜色图像操作函数;(14)颜色空间转换函数;(15)图像类型和类型转换函数。

MATLAB图像处理工具箱能提供的图像处理非常的广泛,主要包括:图像数据的读取和保存、图像的显示、创建用户接口,实现交互操作、图像的几何变换、图像滤波器设计及线性滤波、形态学图形处理、图像域变换、图像增强、图像分析、图像合成、图像配准、图像分割、图像ROI处理、图像恢复、彩色图像处理、邻域和块处理等。

利用图像处理工具箱,人们能够在不必考虑图像的格式、内容、读写、显示等这些图像自身包涵的细节,把主要的精力放在对图像算法的研究上,进而能够大幅度的提高工作效率。并且,我们在对这些算法进行测试时既能够得到理想的数据,又能得到直观的图示。

下面将通过一些例子来简单的介绍利用MATLAB进行数字图像处理的方法。

2 图像增强

2.1 直方图均衡实现图像增强

图像增强的目的是运用当前的技术去改善图像的视觉效果进而将图像转化成一种更适合人眼观察和机器自动分析的形式。直方图均衡化是常用的一种图像增强方法。采用直方图修整可以使原图像灰度集中的区域拉开或使灰度分布均匀,增大反差,使图像的细节更加清晰,进而达到增强图像的目的。

下面是用MATLAB对图像“coins”进行的直方图均衡化增强效果对比图,如图1所示。

具体对应的MATLAB语言实现的源程序以及主要注解如下

I=imread('coins.png');%读入要处理的图像文件。

M=histeq(I,64);%对图像进行直方图均衡化处理,指定均衡化后的灰度为64。

subplot(2,2,1),imshow(I),title('原始图像');%显示原始图像。

subplot(2,,2,2),imhist(I,64),title('原始直方图');%显示原始直方图。

subplot(2,2,3),imshow(M),title('直方图均衡化后的图像');%显示均衡化后的图像。

subplot(2,2,4),imhist(M,64),title('直方图均衡化后的直方图');%显示均衡化后的直方图。

通过对两幅图的对比可以很清晰的看出进行均衡化的图像变得清晰,直方图的形状更加理想。

2.2 非线性空域滤波实现图像增强

空域滤波是空域图像增强的一种常用的方法。空域滤波是对图像中每个像素为中心的邻域进行一系列的运算,最终将得到的结果替换原来的像素值。空域滤波一般分为线性空域滤波和非线性空域滤波。线性平均滤波是一种最常用的线性空域滤波。线性平均滤波实际是一种低通滤波,信号的低频部分通过,阻止高频部分通过。由于图像的边缘处于高频部分,因此线性平均滤波后,会造成图像边缘的模糊。非线性空域滤波主要包括中值滤波、顺序统计滤波和自适应滤波等。中值滤波能够保护边缘的非线性图像平滑。

下面是用MATLAB对图像“coins”进行的中值滤波增强效果对比图,如图2所示。

具体对应的MATLAB语言实现的源程序以及主要注解如下

I=imread('coins.png');%读入文件

M=histeq(I,64)

J=imnoise(M,'salt & pepper',0.02);%添加椒盐噪声

subplot(2,3.1),imshow(I),title('原始图像');%显示原图像

subplot(2,3,2),imshow(J),title('添加椒盐噪声后的图像');%显示添加椒盐噪声后的图像

k1=medfilt2(J);%进行3*3模板平滑滤波

k2=medfilt2(J,[5,5]);%进行5*5模板平滑滤波

k3=medfilt2(J,[7,7]);%进行7*7模板平滑滤波

k4=medfilt2(J,[9,9]);%进行9*9模板平滑滤波

subplot(2,3,3),imshow(k1),title('3*3模板中值滤波'):%显示3*3模板中值滤波

subplot(2,3,4),imshow(k2),title('5*5模板中值滤波');%显示5*5模板中值滤波

subplot(2,3,5),imshow(k3),title('7*7模板中值滤波');%显示7*7模板中值滤波

subplot(2,3,6),imshow(k4),title('9*9模板中值滤波');%显示9*9模板中值滤波

通过对以上图片的对比,经过MATLAB中值滤波处理后的图像轮廓更加清晰。不同的模板得到的清晰度也有所差别。

3 边缘检测

边缘检测是利用物体和背景在某种图像特征上的差异来实现的。图像的边缘中包含许多对图像分析,目标识别有价值的信息,合理的利用物体和背景在某种图像特征的差异能够准确的将目标和背景区分开来。边缘检测包含两个基本内容:一是抽取反映灰度变化的边缘点;二是剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。常见的边缘检测方法有:微分算子、Canny算子和LOG算子等。常用的微分算子有Sobel算子、Roberts算子Prewit算子等。

Canny算子边缘检测

Canny算子的具有低误码率、高定位精度和抑制虚假边缘等优点。

LOG算子边缘检测

拉普拉斯算子是一种不依赖于边缘方向的二阶微分算子,它具有旋转不变的性质,在图像处理中经常被用来提取图像的边缘。

下面是用MATLAB对图像“lena”进行的LOG算子边缘检测

下面是用MATLAB对图像“lena”进行的Canny算子边缘检测,如图3所示

具体对应的MATLAB语言实现的源程序以及主要注解如下

I=imread('lena.jpg');%读入文件

subplot(2,2,1),imshow(I),title('原始图像')%显示原始图像

I1=rgb2gray(I);%转化灰度图像

subplot(2,2,2),imshow(I1),title('灰度图像');%显示灰度图像

I2=edge(I1,'canny');%canny算子检测

subplot(2,2,3),imshow(I2),title('canny算子分割结果');%显示canny算子边缘检测图像

I3=edge(I1,'log');%log算子边缘检测。

subplot(2,2,4),imshow(I3),title('log算子分割结果');%显示log算子边缘检测图像

4 结论

利用MATLAB进行图像处理,操作方便,简单快捷,能够快速、高效得到理想的预期效果。其中图像处理工具箱几乎包含了所以的常用的图像处理方法,同时工具箱也具有开放性,能够让人们直接利用现有的方法进行图像处理,也可以更改代碼进而改进函数功能。本文只是简单的介绍了一些例子,MATLAB本身还包含一系列复杂的图像处理命令。总之,MATLAB作为一个强大的数据处理软件为我们在图像处理方向的研究提供了极大的方便。

[参考文献]

[1]高成.MATLAB图像处理与应用[M].北京.国防工业出版社,2007,04.

[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].北京:清华大学出版社,2013,07.

[3]王秋雨.MATLAB图像处理的几个应用实例[J].福建电脑.2011,11, 6-7.

[4]于广州,杨秀娟.MATLAB在图像处理中的应用[J].中国校外教育 2009,02,166-167.

[5]赵小川.MATLAB图像处理:程序实现与模块化仿真[M].北京,北京航空航天大学出版社,2014,01.

猜你喜欢
边缘检测图像增强
一种基于轻量级深度网络的无参考光学遥感图像增强算法
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
虚拟内窥镜图像增强膝关节镜手术导航系统
基于图像增强的无人机侦察图像去雾方法
基于图像的物体尺寸测量算法研究
唐卡图像边缘提取
水下大坝裂缝图像分割方法研究 
基于TMS320的跑道异物监测系统
基于梯度信息的多尺度Retinex图像增强方法及应用