基于MATLAB的数字图像处理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数字图像的直方图均衡化与边缘检测罗泽(中南林业科技大学计算机与信息工程学院自动化一班20085942)摘要:介绍了数字图像处理技术和MATLAB的图像处理工具箱函数,运用MATLAB语言实现图像的直方图均衡化和边缘检测。关键词:MATLAB;直方图均衡化;边缘检测TheHistogramEqualizationandEdgeDetectionofDigitalImageLuoZeAbstract:ThepaperintroducesThetechnologyofdigitalimageprocessingandimageproceingtoolboxofMATLAB,thenpresentstheexamplesofHistogramequalizationandedgedetectionbyusingthelanguageofMATLAB.Keywords:MATLAB;histogramequalization;edgedetection1引言数字图像处理技术涉及计算机技术、微电子技术、光学技术和数学分析等领域,是一门综合性强、应用范围广的新兴学科。具体包括图像视觉基础、图像变换、图像增强、图像恢复、图像压缩、图像编码、图像解码、图像传输、图像识别和图像分析等技术。其理论推导和数学分析很多,而上述理论的验证和工程实现是通过MATLAB完成的。为此,MATLAB己经成为目前工程应用中重要的图像开发软件。MATLAB是由美国MathWorks公司推出的用于数值计算和图形处理的开发软件。其图像处理工具箱数字图像处理工具箱函数包括以下15类:1)图像显示函数;2)图像文件输入、输出函数;3)图像几何操作函数;4)图像像素值及统计函数;5)图像分析函数;6)图像增强函数;7)线性滤波函数;8)二维线性滤波器设计函数;9)图像变换函数;10)图像邻域及块操作函数;11)二值图像操作函数;12)基于区域的图像处理函数;13)颜色图操作函数;14)颜色空间转换函数;15)图像类型和类型转换函数。MATLAB图像处理工具箱支持四种图像类型,分别为真彩色图像、索引色图像、灰度图像、二值图像,由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换。MATLAB可操作的图像文件包括BMP、HDF、JPEG、PCX、TIFF、XWD等格式。下面以灰度图像为例,说明图像的直方图均衡化和边缘检测通过MATLAB语言实现的方法。2直方图均衡实现图像增强图像增强的目的是突出图像中有用的信息,削弱或消除不需要的信息。直方图均衡化是图像增强的一种常用方法,它能使图像的灰度分布均匀,对比度增大,细节更清晰。它的基本思想是把原始图像的直方图变换成均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。以图像处理经典图像之一“lena”为例,进行的直方图均衡化增强效果对比图,如图1。图1直方图均衡化对应的MATLAB语言实现的源程序及主要注解如下:%直方图均衡化I=imread('lena.bmp');%读入图像文件K=histeq(I,64);%对图像进行直方图均衡化,指定均衡化后的灰度级数为64subplot(2,2,1),imshow(I),title('原始图像');%显示原始图像subplot(2,2,2),imhist(I,64),title('原始直方图');%显示原始直方图subplot(2,2,3),imshow(K),title('直方图均衡化后的图像');subplot(2,2,4),imhist(K,64),title('直方图均衡化后的直方图');通过比较可看出均衡化后的图像变得清晰,其直方图形状也比原直方图的形状更理想。3边缘检测边缘是图像的最基本的特征,边缘中包含着有价值的目标边界信息,这些信息可以用作图像分析、目标识别。在细胞边缘检测计算过程中,为了有效地抑制噪声的影响,同时能够客观、正确地选取边缘检测的门限值,可以先通过迭代算法求得最佳阈值,把图像进行分割为背景和目标两部分;再运用数学形态学的腐蚀算法,挖去细胞内部像素点;最后剩余部分图像就是细胞的边缘,从而实现了细胞的边缘检测。这样通过对各像素点自身灰度值的分析和计算,判断该点是否为边缘点,避免了在边缘检测的数学计算过程中,使噪声干扰的影响进一步扩大,损坏细胞边缘图像。通过阈值分割处理,既增强了图像的目标与背景的对比,增强了边缘,又能准确提取细胞区域。以图像处理经典图像之一“rice”为例,进行边缘检测,采用不同的算法所得到的效果对比图,如图2。图2不同算子的边缘检测对应的MATLAB语言实现的源程序及主要注解如下:%利用不同的算子实现边缘检测rice=imread('rice.if');%读入图像文件[x,y]=size(rice);%求出图像大小b=double(rice);N=sqrt(100)*randn(x,y);%生成方差为10的白噪声I=b+N;%产生噪声干扰图像fori=1:x%实际图像的灰度为0~255forj=1:yif(I(i,j)255)I(i,j)=255;endif(I(i,j)0)I(i,j)=0;endendendz0=max(max(I));%求出图像中最大的灰度z1=min(min(I));%求出图像中最小的灰度T=(z0+z1)/2;TT=0;S0=0;n0=0;S1=0;n1=0;allow=0.5;%新旧阈值的允许接近程度d=abs(T-TT);count=0;%记录几次循环while(d=allow)%迭代最佳阈值分割算法count=count+1;fori=1:xforj=1:yif(I(i,j)=T)S0=S0+I(i,j);n0=n0+1;endif(I(i,j)T)S1=S1+I(i,j);n1=n1+1;endendendT0=S0/n0;T1=S1/n1;TT=(T0+T1)/2;d=abs(T-TT);T=TT;endSeg=zeros(x,y);fori=1:xforj=1:yif(I(i,j)=T)Seg(i,j)=1;%产生阈值分割后的图像endendendSI=1-Seg;%阈值分割后的图像求反,便于用腐蚀算法求边缘se1=strel('square',3);%定义腐蚀算法的结构SI1=imerode(SI,se1);%腐蚀算法BW=SI-SI1;%用新算法进行边缘检测I=uint8(I);%图像矩阵中每个数据占用1个字节(减小占用空间)。BW1=edge(I,'sobel',0.09);%用Soble算子进行边缘检测BW2=edge(I,'log',0.015);%用Gauss-Laplace算子进行边缘检测%不同算子检测效果输出对比subplot(2,2,1),imshow(I);title('原始图像')subplot(2,2,2),imshow(BW1);title('Soble算子')subplot(2,2,3),imshow(BW2);title('Gauss-Laplace算子')subplot(2,2,4),imshow(BW);title('新算子')%显示新算法的边缘检测图像由图2可知,跟传统常用的Soble算子和Gauss-Laplace算子相比,该方法不受噪声影响,能够可靠地提取边缘,从而对米粒边缘进行精确检测。4结束语通过实践应用,基于MATLAB的图像处理即避开了VC等开发软件语言实现起来复杂,又可以快速实现模拟仿真并输出效果图,大大提高工作学习效率,对于工程应用和图像处理教学方面有着非常好的辅助性作用,下阶段的任务就是把图像处理的主要技术方法系统地用MATLAB实现,从而建立起一套基于MATLAB的图像处理试验平台,为相关行业的工作学习技术人员提供有效的参考工具。本文提出了基于MATLAB的图像处理功能解决图像处理技术一系列理论方法的实现途径,为快速高效实现图像处理各种效果提出了行之有效的解决方法。参考文献[1]张博夫,梁凯琦.MATLAB环境下的数字图像处理入门实验[J].现代教育技术,2007,6(2):37-39.[2]胡学龙,许开宇.数字图像处理[M].北京:电子工业出版社,2006.[3]何东健.数字图像处理[M].2版.西安:西安电子科技大学出版社,2008.

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功