基于matlab的球墨铸铁金相图像处理分析-本科论文.doc
《基于matlab的球墨铸铁金相图像处理分析-本科论文.doc》由会员分享,可在线阅读,更多相关《基于matlab的球墨铸铁金相图像处理分析-本科论文.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、云南农业大学工程技术学院毕业论文基于Matlab的球墨铸铁金相图像处理分析第一章 绪论1.1研究背景和意义Matlab是MATrix LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。时至今日,经过MathWorks公司的不断完善,Matlab已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外的许多高校,Matlab已经成为线性代数、自动控制理论、数理统计、数字信号处理、动态系统仿真等高级课程的基本数学工具。Matlab的主要特点有:语
2、言简洁紧凑,使用方便灵活,库函数机器丰富;运算符丰富;具有结构化的控制语句(如for循环,while循环,break语句和if语句);程序限制不严格,程序设计自由度大;程序的可移植性很好,基本上不做修改就可以再各种型号的计算机和操作系统上运行;Matlab的图形功能强大;功能强大的工具箱是Matlab的另一特色;缺点是和其他高级程序相比,程序执行速度较慢。它将数值分析、矩阵计算、图形图像处理、信号处理和仿真等诸多强大的功能集成在较容易使用的交互计算机环境之中,为科学研究、工程运用提供了一种功能强、效率高的编程工具。利用Matlab对球墨铸铁进行金相图像分析时,就是使用图像处理工具包的函数种类很
3、多:图像显示、图像文件输入与输出、几何操作、像素值统计、图像分析与增强、图像滤波、滤波器、图像变换、图像类型转换等。1.2 存在的问题图像处理在Matlab中的应用是由一系列支持图像处理的操作函数组成,如几何操作、区域操作、块操作、滤波、变换、图像分割、图像边缘提取、图像增强等,为便于应用,在该软件中形成图像处理工具包。图像处理工具包的函数种类很多:图像显示、图像文件输入与输出、几何操作、像素值统计、图像分析与增强、图像滤波、滤波器、图像变换、图像类型转换等。该工具包与其它一样,使用者可以根据需要自行编写函数.其中就有很多的问题出现:1.图像采集问题:在采集图片时由于相机的成像效果、拍摄角度、
4、拍摄人员的自身感觉等因素都会影响到后边图像处理的工作和效果,因为颜色和灰度是决定一幅图像表现能力的关键因素;2.图像处理问题: 图像读入 imread ,是Matlab支持的7种格式之一,显示图像用imshow (h) 语句,h 为图像句柄;输出图像若需要永久保存,可用imwrite(h,map, filename.bmp,bmp), 写入存储器。注意在该语句前要设置调色板,即map=(gray(256)。 要注意图像格式的转化。不同的图像格式对应不同的处理方式,如果处理与格式不符,将引起错误。 尽管Matlab允许未定义使用数组,但在实际应用中这样经常出错,特别是遇到在double和uint
5、8型之间的转换时。所以最好还是养成用前定义的习惯,避免出现不必要的错误。 在做完一定量的运算后,一般要用Clear清除内存变量,以防影响后面的程序运行。一般默认路径在Matlab安装文件下的work文件夹中,程序和资源都放在此,如果需要引用新的文件,应事先指明路径。 应注意语句结尾“;” 的使用,特别是图像处理中。 应做好程序的注释工作。1.3研究的内容和方法本设计主要工作内容为研究基于Matlab对球墨铸铁金相图像处理分析、从图像分割、球墨铸铁组织的定位、组织特征的提取及对提取的组织的特征分析等。,选取适合的图像处理方法对图像进行二值化,对二值化后的图像进行图像分割和特征提取,最后对球墨铸铁
6、组织进行金相分析。主要研究的内容包括:1. 球墨铸铁金相图像预处理,包括:RGB彩色图像的灰度化、图像灰度拉伸、图像边缘检测、灰度图的二值化等; 直方图均衡化、图像增强、中值滤波等.2. 图像分割及特征提取。先对定位后的金相图像进行预处理,然后用边缘检测、面积提取法来确定特征区域。3. 特征分析。对提取出来的特征进行形态分析,并进行球墨大小分级,球化率的计算。主要研究方案如下:(1)、采集球墨铸铁金相样本;(2)、对图像预处理(灰度变换增强、图像平滑处理、图像锐化)得到包含信息量较小和噪声较低的图像;(3)、用边缘检测、面积提取法来确定特征区域;(4)、提取出特征区域;(5)、对提取出的特征区
7、域进行简单分析;(6)、对本次球墨铸铁金相研究进行总结。主要的技术路线如下表1。表1 技术路线第二章 图像采集与预处理图像是当光辐射能量照在物体上经过发射或透射,或由发光物体本身发出光的能量,在人的视觉器官或者机器视觉中所呈现出的物体的视觉信息。图像源于自然景物,是其原始的形态,是连续变换的模拟量。图像每个像素点都有自己的属性,如颜色、灰度等。颜色和灰度是决定一幅图像表现能力的关键因素。图像的色彩是根据光的色彩决定的,人对图像色彩感觉决定于光谱成分。灰度是像素的亮度,它用于表示图像像素在黑白之间的可区分程度,用等级来度量,级数越多,黑白图像的表现力就越强。图像可以根据其表现形式和生成方式做出不
8、同的划分,按形式分可以分为:实际图像和抽像图像。 按图像亮度等级分分为:二值图像和灰度图像。 按照光谱分分为:彩色图像和黑白图像。按照图像是否随时间而变换分:静止图像和活动图像。 按照图像所占空间的维数分:二维图像和三维图像等。图像预处理是相对于图像识别、图像理解的一种前期处理。通常图像会出现边缘过于模糊、图像上出现一些不知来源的黑点或白点,图像失真、变形等,因而要进行图像增强,按特定需要突出一幅图像中的某些有用信息;同时,削弱或去除某些不需要的信息,改善图像质量,如改变图像对比度、去除噪声或强调边缘等处理【】。图像预处理主要包括以下内容:1) 图像增强。主要包含灰度变换增强、图像平滑处理、图
9、像锐化处理等;2) 灰度化。变换增强主要使用的是直方图均衡化histeq 和对比度增imadjust;3) 图像平滑。图像平滑的主要目的是减少图像噪声。Matlab 提供的图像平滑函数主要有wiener2 、medfilt2 和ordfilt2。wiener2 用于实现线性平滑滤波;medfilt2 用于实现中值滤波;ordfilt2 是二维统计顺序滤波,它是中值滤波的推广;4) 图像锐化。图像锐化的目的就是使边缘和轮廓线模糊的图像变得清晰,并使其细节清晰。由于锐化会使噪声受到比信号还强的增强,故一般先去除或减轻干扰噪声后才能进行锐化处理。可以用laplacian算子锐化和prewitt 模板
10、锐化【】。基本的流程图表2。表2 图像处理流程图2.1图像采集图像采集方法主要有三种:(1)用数码相机拍摄静态图片,这种方法简单,图像清晰度高,移动性强,可在野外进行;不足的是图像易倾斜、畸变、光照不均出现阴影,增加图像处理难度。(2)用数字摄像机采集动态图像。一般是把数字摄像机(摄像头)固定在支架上,通过图像采集卡把数字影像输入计算机,通过计算机观察动态图像,根据需要采集静态图像。这种方法采集速度和传输速度快,图像较小。通过在不同角度放置光源,来消除阴影,比较具有可塑性,通过支架的调节还能消除图像畸变,因而应用较多。但这种方法同样存在光照不均匀问题,还需要图像尺寸的标准参照。所设计的系统硬件
11、由计算机,数码相机、光源等组成。本论文主要采用的是第一种方法即用数码相机拍摄静态图片然后进行处理。如图1所示。 图1球墨铸铁的金相图 拍摄时效果 处理后效果图2 45#金相图像2.2图像读入 对一幅图像如果整体进行处理,不仅浪费时间,而且图像其它部分可能会影响处理效果。因此,可以先通过图像剪切函数imcrop 剪切所关心的、特征明显的一部分图像,然后对这部分图像进行相关地处理。Matlab工具箱中的imread 函数读入图像,支持以下几种图像文件格式:BMP,GIF,TIFF,JPEG,HDF,PCX,XWD,PNG,ICO,CUR,PGM,PPM 和RAS等类型。可利用图像处理工具箱中的im
12、rade( )和imwrite ( )函数来实现,同时可利用imshow ( )函数将该图像显示出来。其程序如下:(如我把图像存在D盘,并面命为“qt.jpg”)clear, close allA = imread (d:qt.jpg) ;imshow (A) ;imwrite (A, d:qt.jpg) ;2.3图像显示1.image函数是matlab提供的最原始的图像显示函数(主要彩色显示图像),程序如下:a=1,2,3,4,5,6,7,8,9,10,11,12;image(a);结果显示为图3所示。图3 彩色显示图像2.colorbarcolorbar函数用显示图像的颜色条。 通常,颜色
13、映象进行过调节,把数据从最小扩展到最大,也就是说整个颜色映象都用于绘图。有时也许想改变颜色使用的方法。函数caxis代表颜色轴,因为颜色增加了另一个维数,它允许对数据范围的一个子集使用整个颜色映象或者对数据的整个集合只使用当前颜色映象的一部分。cmin,cmax=caxis返回映射到颜色映象中第一和最后输入项的最小和最大的数据。它们通常被设成数据的最小值和最大值。比如,函数mesh(peaks) 会画出函数peaks的网格图,并把颜色轴caxis设为-6.5466,8.0752,即Z的最小值和最大值【】。这些值之间的数据点,使用从颜色映象中经插值得到的颜色。如:i=imread(d:qt.jp
14、g); imshow(i); colorbar; 结果如图4所示。图4 图像颜色映射2.4图像灰度化将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用两
15、种方法来实现【5】。第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。灰度化结果如图所示,程序: A=imread(d:qt.jpg);B=rgb2gray(A);figuresubplot(1,2,1);imshow(A)title(原图);subplot(1,2,2);imshow(B)title(原图灰度图像)
16、其结果如图5所示。图5 图像灰度化2.5图像分割图像分割一般采用的方法有边缘检测(edge detection)、边界跟踪(edge tracing)、区域生长(region growing)、区域分离和聚合等。图像分割算法一般基于图像灰度值的不连续性或其相似性。不连续性是基于图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法。相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。图像分割其实也是对图像进行二值化。分割的目的是从图像中将研究对象球墨铸铁中的石墨形态提取出来,通过增强有用信息、抑制无用信息,改善图像的视觉效果,提高球墨铸铁图像的可分辨性,
17、使球墨铸铁图像更利于机器分析。图像二值化是对图像灰度取阈值, 用将图像数据分成两大部分:大于的像素群和小于的像素群,若输入图像为f ( x, y ) , 输出图像为f( x,y) ,则: (1)二值图像汇总所有的像素值能从0和1两个值中取,因此在matlab中,二值图像使用一个由0和1组成的二维矩阵表示。这两个可取的值分别对应于关闭和打开,关闭表征该像素处于背景,而打开表征该像素处于前景。以这种方式来操作图像可以更容易识别出图像的结果特征。二值化程序如下:A=imread(d:qt.jpg);figuresubplot(1,2,1);imshow(A)title(原图)C=im2bw(A,0.
18、2);subplot(1,2,2);imshow(C)title(原图二值图)结果如图6所示。图6二值化图像进行阈值选择是一个较复杂的问题,必须根据图像的统计性质(直方图),即从概率角度来选择合适的阈值。最大方差阈值的设定方法是阈值自动选择的最优方法,且效果良好。该阈值可通过相应的Matlab程序计算得出。Matlab提供了多种图像类型转换函数,其中二值化图像函数主要有dither 和im2bw。函数dither通过颜色抖动来达到转换图像的目的;函数im2bw通过设置阈值将灰度及真彩图像转换成二值图像,结果如下图8,图像直方图程序如下:I=imread(d:灰度.jpg);B=rgb2gray
19、(I);imshow(B,40 255);figure;imhist(B)title(直方图);J=imadjust(B,0.15 0.9,0 1);figure;imhist(B,64)title(均衡直方图)结果如图7、8所示。图7 直方图图8 均衡直方图图像分割的关键问题在于如何确定分割的阈值,系统中提供了两种选取阈值的方法Ostu法和指定阈值法。为了增加灵活性,在这里我们选取了指定阈值法对图像进行背景分割。阈值分割的Matlab主程序如下:A=imread(d:qt.jpg);figuresubplot(1,4,1),imshow(A);title(原图像)B=im2bw(A,91/2
20、55);subplot(1,4,2),imshow(B);title(阈值91的图像)C=im2bw(A,71/255);subplot(1,4,3),imshow(C);title(阈值71的图像)D=im2bw(A,140/255);subplot(1,4,4),imshow(D);title(阈值140的图像) 结果如图9:图9图像分割2.6滤波为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤
21、波器,低通滤波器,维纳滤波器,最小失真法等。这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量【6】。本文给定的图像为二维信号,在信号中加入指定的椒盐噪声,然后利用中值滤波进行去噪。虽然有关中值滤波的函数是在Matlab函数库中已经提供,但在图像处理中利用中值滤波去除图像中的椒盐噪声是一种有效的方法,利用中值滤波函数去除图像中的噪声过程如下:(1)使用imread()读入原始的彩色图像。(2)因为使用中值滤波器只能对灰度图像进行处理,所以利用rgb2gray()将彩色图像转化为灰度图像。(3)用imnoise()在灰度图像中加入椒盐噪声。(4)利用medfilt2()函数进行中
22、值滤波,并在Matlab环境下运行。图10图像滤波2.7轮廓提取对图像进行轮廓提取即图像的边缘检测。边缘检测的基本思想首先是利用边缘增强算子,突出图像中局部边缘,然后定义像素的“边缘强度”,通过设置域值的方法提取边缘点集。由于噪声和模糊的存在,检测到得边界可能会变宽或在某点出发生断裂。因此,边缘检测包括两个基本内容:用边缘算子提取出反映灰度变化的边缘点集。在边缘点集合中剔除某些边界点或是填补边界间断点,并将这些边缘连续成完整的线。I=imread(d:灰度.jpg);A=rgb2gray(I);figuresubplot(1,4,1);imshow(A);title(原图像);B=edge(A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 球墨铸铁 金相 图像 处理 分析 本科 论文
限制150内