基于matlab的球墨铸铁金相图像处理分析毕设论文.docx
《基于matlab的球墨铸铁金相图像处理分析毕设论文.docx》由会员分享,可在线阅读,更多相关《基于matlab的球墨铸铁金相图像处理分析毕设论文.docx(40页珍藏版)》请在冰豆网上搜索。
基于matlab的球墨铸铁金相图像处理分析毕设论文
基于Matlab的球墨铸铁金相图像处理分析
第一章绪论
1.1研究背景和意义
Matlab是MATrixLABoratory(“矩阵实验室”)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。
是国际公认的优秀数学应用软件之一。
时至今日,经过MathWorks公司的不断完善,Matlab已经发展成为适合多学科,多种工作平台的功能强大的大型软件。
在国外的许多高校,Matlab已经成为线性代数、自动控制理论、数理统计、数字信号处理、动态系统仿真等高级课程的基本数学工具。
Matlab的主要特点有:
①语言简洁紧凑,使用方便灵活,库函数机器丰富;②运算符丰富;③具有结构化的控制语句(如for循环,while循环,break语句和if语句);④程序限制不严格,程序设计自由度大;⑤程序的可移植性很好,基本上不做修改就可以再各种型号的计算机和操作系统上运行;⑥Matlab的图形功能强大;⑦功能强大的工具箱是Matlab的另一特色;⑧缺点是和其他高级程序相比,程序执行速度较慢。
它将数值分析、矩阵计算、图形图像处理、信号处理和仿真等诸多强大的功能集成在较容易使用的交互计算机环境之中,为科学研究、工程运用提供了一种功能强、效率高的编程工具[1]。
利用Matlab对球墨铸铁进行金相图像分析时,就是使用图像处理工具包的函数种类很多:
图像显示、图像文件输入与输出、几何操作、像素值统计、图像分析与增强、图像滤波、滤波器、图像变换、图像类型转换等。
1.2存在的问题
图像处理在Matlab中的应用是由一系列支持图像处理的操作函数组成,如几何操作、区域操作、块操作、滤波、变换、图像分割、图像边缘提取、图像增强等,为便于应用,在该软件中形成图像处理工具包。
图像处理工具包的函数种类很多:
图像显示、图像文件输入与输出、几何操作、像素值统计、图像分析与增强、图像滤波、滤波器、图像变换、图像类型转换等。
该工具包与其它一样,使用者可以根据需要自行编写函数.其中就有很多的问题出现:
1.图像采集问题:
在采集图片时由于相机的成像效果、拍摄角度、拍摄人员的自身感觉等因素都会影响到后边图像处理的工作和效果,因为颜色和灰度是决定一幅图像表现能力的关键因素;
2.图像处理问题:
①图像读入imread,是Matlab支持的7种格式之一,显示图像用imshow(h)语句,h为图像句柄;输出图像若需要永久保存,可用imwrite(h,map,’filename.bmp’,’bmp’),写入存储器。
注意在该语句前要设置调色板,即map=(gray(256))。
②要注意图像格式的转化。
不同的图像格式对应不同的处理方式,如果处理与格式不符,将引起错误。
③尽管Matlab允许未定义使用数组,但在实际应用中这样经常出错,特别是遇到在double和uint8型之间的转换时。
所以最好还是养成用前定义的习惯,避免出现不必要的错误。
④在做完一定量的运算后,一般要用Clear清除内存变量,以防影响后面的程序运行。
⑤ 一般默认路径在Matlab安装文件下的work文件夹中,程序和资源都放在此,如果需要引用新的文件,应事先指明路径。
⑥应注意语句结尾“;”的使用,特别是图像处理中。
⑦应做好程序的注释工作。
1.3研究的内容和方法
本设计主要工作内容为研究基于Matlab对球墨铸铁金相图像处理分析、从图像分割、球墨铸铁组织的定位、组织特征的提取及对提取的组织的特征分析等。
,选取适合的图像处理方法对图像进行二值化,对二值化后的图像进行图像分割和特征提取,最后对球墨铸铁组织进行金相分析。
主要研究的内容包括:
1.球墨铸铁金相图像预处理,包括:
RGB彩色图像的灰度化、图像灰度拉伸、图像边缘检测、灰度图的二值化等;直方图均衡化、图像增强、中值滤波等.
2.图像分割及特征提取。
先对定位后的金相图像进行预处理,然后用边缘检测、面积提取法来确定特征区域。
3.特征分析。
对提取出来的特征进行形态分析,并进行球墨大小分级,球化率的计算。
主要研究方案如下:
(1)、采集球墨铸铁金相样本;
(2)、对图像预处理(灰度变换增强、图像平滑处理、图像锐化)得到包含信息量较小和噪声较低的图像;
(3)、用边缘检测、面积提取法来确定特征区域;
(4)、提取出特征区域;
(5)、对提取出的特征区域进行简单分析;
(6)、对本次球墨铸铁金相研究进行总结。
主要的技术路线如下表1。
表1技术路线
第二章图像采集与预处理
图像是当光辐射能量照在物体上经过发射或透射,或由发光物体本身发出光的能量,在人的视觉器官或者机器视觉中所呈现出的物体的视觉信息。
图像源于自然景物,是其原始的形态,是连续变换的模拟量。
图像每个像素点都有自己的属性,如颜色、灰度等。
颜色和灰度是决定一幅图像表现能力的关键因素。
图像的色彩是根据光的色彩决定的,人对图像色彩感觉决定于光谱成分。
灰度是像素的亮度,它用于表示图像像素在黑白之间的可区分程度,用等级来度量,级数越多,黑白图像的表现力就越强。
图像可以根据其表现形式和生成方式做出不同的划分,按形式分可以分为:
实际图像和抽像图像。
按图像亮度等级分分为:
二值图像和灰度图像。
按照光谱分分为:
彩色图像和黑白图像。
按照图像是否随时间而变换分:
静止图像和活动图像。
按照图像所占空间的维数分:
二维图像和三维图像等。
图像预处理是相对于图像识别、图像理解的一种前期处理。
通常图像会出现边缘过于模糊、图像上出现一些不知来源的黑点或白点,图像失真、变形等,因而要进行图像增强,按特定需要突出一幅图像中的某些有用信息;同时,削弱或去除某些不需要的信息,改善图像质量,如改变图像对比度、去除噪声或强调边缘等处理【2】。
图像预处理主要包括以下内容:
1)图像增强。
主要包含灰度变换增强、图像平滑处理、图像锐化处理等;
2)灰度化。
变换增强主要使用的是直方图均衡化histeq和对比度增imadjust;
3)图像平滑。
图像平滑的主要目的是减少图像噪声。
Matlab提供的图像平滑函数主要有wiener2、medfilt2和ordfilt2。
wiener2用于实现线性平滑滤波;medfilt2用于实现中值滤波;ordfilt2是二维统计顺序滤波,它是中值滤波的推广;
4)图像锐化。
图像锐化的目的就是使边缘和轮廓线模糊的图像变得清晰,并使其细节清晰。
由于锐化会使噪声受到比信号还强的增强,故一般先去除或减轻干扰噪声后才能进行锐化处理。
可以用laplacian算子锐化和prewitt模板锐化【3】。
基本的流程图表2。
表2图像处理流程图
2.1图像采集
图像采集方法主要有三种:
(1)用数码相机拍摄静态图片,这种方法简单,图像清晰度高,移动性强,可在野外进行;不足的是图像易倾斜、畸变、光照不均出现阴影,增加图像处理难度。
(2)用数字摄像机采集动态图像。
一般是把数字摄像机(摄像头)固定在支架上,通过图像采集卡把数字影像输入计算机,通过计算机观察动态图像,根据需要采集静态图像。
这种方法采集速度和传输速度快,图像较小。
通过在不同角度放置光源,来消除阴影,比较具有可塑性,通过支架的调节还能消除图像畸变,因而应用较多。
但这种方法同样存在光照不均匀问题,还需要图像尺寸的标准参照。
所设计的系统硬件由计算机,数码相机、光源等组成。
本论文主要采用的是第一种方法即用数码相机拍摄静态图片然后进行处理。
如图1所示。
图1球墨铸铁的金相图
拍摄时效果处理后效果
图245#金相图像
2.2图像读入
对一幅图像如果整体进行处理,不仅浪费时间,而且图像其它部分可能会影响处理效果。
因此,可以先通过图像剪切函数imcrop剪切所关心的、特征明显的一部分图像,然后对这部分图像进行相关地处理。
Matlab工具箱中的imread函数读入图像,支持以下几种图像文件格式:
BMP,GIF,TIFF,JPEG,HDF,PCX,XWD,PNG,ICO,CUR,PGM,PPM和RAS等类型。
可利用图像处理工具箱中的imrade()和imwrite()函数来实现,同时可利用imshow()函数将该图像显示出来。
其程序如下:
(如我把图像存在D盘,并面命为“qt.jpg”)
clear,closeall
A=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.colorbar
colorbar函数用显示图像的颜色条。
通常,颜色映象进行过调节,把数据从最小扩展到最大,也就是说整个颜色映象都用于绘图。
有时也许想改变颜色使用的方法。
函数caxis代表颜色轴,因为颜色增加了另一个维数,它允许对数据范围的一个子集使用整个颜色映象或者对数据的整个集合只使用当前颜色映象的一部分。
[cmin,cmax]=caxis返回映射到颜色映象中第一和最后输入项的最小和最大的数据。
它们通常被设成数据的最小值和最大值。
比如,函数mesh(peaks)会画出函数peaks的网格图,并把颜色轴caxis设为[-6.5466,8.0752],即Z的最小值和最大值【4】。
这些值之间的数据点,使用从颜色映象中经插值得到的颜色。
如:
i=imread('d:
\qt.jpg');
imshow(i);
colorbar;
结果如图4所示。
图4图像颜色映射
2.4图像灰度化
将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。
彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。
而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。
灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。
图像的灰度化处理可用两种方法来实现【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);
figure
subplot(1,2,1);
imshow(A)
title('原图');
subplot(1,2,2);
imshow(B)
title('原图灰度图像')
其结果如图5所示。
图5图像灰度化
2.5图像分割
图像分割一般采用的方法有边缘检测(edgedetection)、边界跟踪(edgetracing)、区域生长(regiongrowing)、区域分离和聚合等。
图像分割算法一般基于图像灰度值的不连续性或其相似性。
不连续性是基于图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法。
相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。
图像分割其实也是对图像进行二值化。
分割的目的是从图像中将研究对象—球墨铸铁中的石墨形态提取出来,通过增强有用信息、抑制无用信息,改善图像的视觉效果,提高球墨铸铁图像的可分辨性,使球墨铸铁图像更利于机器分析。
图像二值化是对图像灰度取阈值θ,用θ将图像数据分成两大部分:
大于θ的像素群和小于θ的像素群,若输入图像为f(x,y),输出图像为f’(x,y),则:
(1)
二值图像汇总所有的像素值能从0和1两个值中取,因此在matlab中,二值图像使用一个由0和1组成的二维矩阵表示。
这两个可取的值分别对应于关闭和打开,关闭表征该像素处于背景,而打开表征该像素处于前景。
以这种方式来操作图像可以更容易识别出图像的结果特征。
二值化程序如下:
A=imread('d:
\qt.jpg');
figure
subplot(1,2,1);
imshow(A)
title('原图')
C=im2bw(A,0.2);
subplot(1,2,2);
imshow(C)
title('原图二值图')
结果如图6所示。
图6二值化图像
进行阈值选择是一个较复杂的问题,必须根据图像的统计性质(直方图),即从概率角度来选择合适的阈值。
最大方差阈值的设定方法是阈值自动选择的最优方法,且效果良好。
该阈值可通过相应的Matlab程序计算得出。
Matlab提供了多种图像类型转换函数,其中二值化图像函数主要有dither和im2bw。
函数dither通过颜色抖动来达到转换图像的目的;函数im2bw通过设置阈值将灰度及真彩图像转换成二值图像,结果如下图8,图像直方图程序如下:
I=imread('d:
\灰度.jpg');
B=rgb2gray(I);
imshow(B,[40255]);
figure;
imhist(B)
title('直方图');
J=imadjust(B,[0.150.9],[01]);
figure;
imhist(B,64)
title('均衡直方图')
结果如图7、8所示。
图7直方图
图8均衡直方图
图像分割的关键问题在于如何确定分割的阈值,系统中提供了两种选取阈值的方法—Ostu法和指定阈值法。
为了增加灵活性,在这里我们选取了指定阈值法对图像进行背景分割。
阈值分割的Matlab主程序如下:
A=imread('d:
\qt.jpg');
figure
subplot(1,4,1),
imshow(A);
title('原图像')
B=im2bw(A,91/255);
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滤波
为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。
根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。
经典的去噪方法有:
空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤波器,低通滤波器,维纳滤波器,最小失真法等。
这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量【6】。
本文给定的图像为二维信号,在信号中加入指定的椒盐噪声,然后利用中值滤波进行去噪。
虽然有关中值滤波的函数是在Matlab函数库中已经提供,但在图像处理中利用中值滤波去除图像中的椒盐噪声是一种有效的方法,利用中值滤波函数去除图像中的噪声过程如下:
(1)使用imread()读入原始的彩色图像。
(2)因为使用中值滤波器只能对灰度图像进行处理,所以利用rgb2gray()将彩色图像转化为灰度图像。
(3)用imnoise()在灰度图像中加入椒盐噪声。
(4)利用medfilt2()函数进行中值滤波,并在Matlab环境下运行。
图10图像滤波
2.7轮廓提取
对图像进行轮廓提取即图像的边缘检测。
边缘检测的基本思想首先是利用边缘增强算子,突出图像中局部边缘,然后定义像素的“边缘强度”,通过设置域值的方法提取边缘点集。
由于噪声和模糊的存在,检测到得边界可能会变宽或在某点出发生断裂。
因此,边缘检测包括两个基本内容:
①用边缘算子提取出反映灰度变化的边缘点集。
②在边缘点集合中剔除某些边界点或是填补边界间断点,并将这些边缘连续成完整的线。
I=imread('d:
\灰度.jpg');
A=rgb2gray(I);
figure
subplot(1,4,1);
imshow(A);
title('原图像');
B=edge(A,'sobel',0.1);%edge边缘检测函数
subplot(1,4,2);
imshow(B);
title('sobel算子检测');
C=edge(A,'roberts',0.1);%0.1为门限
subplot(1,4,3);
imshow(C);
title('roberts算子检测');
D=edge(A,'prewitt',0.1);
subplot(1,4,4);
imshow(D);
title('prewitt算子检测');
结果如图11所示。
图11图像轮廓提取
第三章金相分析
3.1球墨铸铁金相组织概述
金相,指金属组织中化学成分、金体结构和物理性能相同的组成,其中包括固溶体、金属化合物及纯物质。
金相组织是反映金属金相的具体形态,如铁素体、珠光体、奥氏体、马氏体等等。
球墨铸铁金相组织中含有以下形态【7】:
(1)铁素体根据GB9441-1988球墨铸铁金相检验评定铁素体数量。
其百分比,按大多数视场对照图片评定。
一般不检查铁素体数量,仅检查与其共存的珠光体数量
(2)珠光体在球墨铸铁中,珠光体的形态一般分三级:
粗状珠光体、片状珠光体、细片状珠光体。
随着珠光体的细化,球墨铸铁的强度和硬度有所提高。
若基体为粒状珠光体,则球墨铸铁在保持一定强度的同时,具有更高的塑性。
(3)奥氏体、贝氏体、马氏体由奥氏体、上贝氏体或下贝氏体通过等温淬火,加入适当元素获得。
(4)渗碳体渗碳体多呈针状、条状,在球墨铸铁中易使基体变脆,故应避免其出现。
(5)磷共晶体磷共晶体在球墨铸铁中对性能的危害比在灰铸铁中大得多。
沿晶界分布的二元或三元磷共晶体,强烈降低球墨铸铁的韧性、塑性和强度,受冲击时,裂痕总是沿磷共晶体边缘开始开裂。
3.2球墨铸铁金相特征分析
Matlab具有强大的图形图像处理功能,能很好地满足定量金相分析工作。
要分析图像的集合特征就要对图像进行分解,分解的结果就是图像被分解成一些具有某些特征的图像的基元。
相对于图像来说这些基元更容易被快速处理,显然这些特征的提取是很重要的,它对分类器设计及其性能影响甚大。
而所谓的特征提取是指从特征定义、经选择或变换直到得出有效特征的全过程。
特征提取是模式识别的关键问题,图像的特征是图像中可用作标记的属性,它可分为图像的统计特征和图像的视觉特征。
图像的统计特征是指人为定义的特征,通过变换才能得到,如图像的直方图、矩等;图像的视觉特征是指人的视觉可直接感受到的自然特征,如区域的轮廓、纹理等。
经过图像处理后得到的二值图像,不仅比灰度图像的存储量要更小之外,更主要的是可以通过二值图像计算出图像中目标物的几何特性,如目标物的大小、位置等。
如果不止一个目标物,则可以对应于这些目标物进行标记,以及定出对像物间的差别,从而可以进一步进行图像相关参数的测量。
球墨铸铁金相组织特征主要有石墨形态,石墨球化率,石墨大小,球化分级,磷共晶和碳化物的类型,数量等特征。
本研究针对以上提及的球墨铸铁的金相组织特征一一进行了研究分析,结果显示石墨形态、大小是评定石墨球化率的基础。
3.3石墨球化分析
在金相检验中,通常所见到的是几种形态的石墨共存。
在这种情况下,评定石墨的球化质量须用球化率来解决。
所谓球化率,是指在规定的视场内,所有石墨球化程度的综合指标。
它反映该视场内所有石墨接近球状的程度。
国家标准根据石墨形态及其分布和球化率,将球墨铸铁石墨球化分为1-6级。
球墨铸铁的力学性能在很大程度上决定于球化率。
一般来说,在其他条件相同的情况下,球化率愈高,力学性能也高。
3.3.1石墨大小分级
GB9441-1988球墨铸铁金相检验标准将石墨大小分成六级。
球墨铸铁石墨球的大小对力学性能的影响很大,减小石墨球径,增加石墨球在单位面积的个数可以明显地提高球墨铸铁的强度、塑性和韧性。
石墨球径的减小,使单位面积上球墨铸铁数量增多,可使抗疲劳强度提高,因此,细化石墨也是提高抗疲劳强度的一个要求。
如表3。
表3(石墨直径(100×)mm)石墨大小分级
级别
3级
4级
5级
6级
7级
8级
直径
>25-50
>12-25
>6-12
>3-6
>1.5-3
≤1.5
将图12金相图像中的石墨球进行部分标记,计算其石墨球的外接圆直径,确定石墨球的大小级别。
图12标记图号的金相图
结果如表4所示。
表4石墨大小级别
图号
球1
球2
球3
球4
球5
球6
球7
直径
50
32
25
16
12
10
6
级别
3级
3级
4级
4级
5级
5级
6级
3.3.2石墨球化率分级
(1)石墨球化率评级的方法:
石墨球化率是球墨铸铁分析的一个最常用的指标,对球化率的计算,首先需求出每个石墨球的外接圆,然后算出单个石墨的面积率,即石墨的实际面积除以最小外接圆的面积,再把面积率和球状修正系数对照,具体方法如下:
(2)石墨的面积率:
(2)
在确定最小外接圆时,采用的是石墨的最大投影长为直径,石墨的实际面积根据封闭图形中的像素来计算。
根据GB9441—88可查出5种球状的修正系数如表5所示。
表5球状修正系数1.
石墨面积
≥0.81
0.80-0.61
0.60-0.41
0.40-0.21
<0.21
修正系数
1.0
0.8
0.6
0.3
0
定义二值图像中目标物的面积A就是目标物所占的像素点的数目,即区域的边界内包含的像素点数。
设目标
的大小为M×N,对二值图像,目标物
,背景为0,则目标物的面积A为:
(3)
通常面积的计算可以直接对分割出的物体区内像素记数即可。
如图13所示。
图13示意图
图14单粒石墨
如图14左边的图像显示,其中的网格放大了2000倍,每一格为6x6的大小,数得黑色区域所占的网格数量,近似值为160;
(4)
球墨铸铁的力学性能是和它的金相组织密切相关,保证铸铁中石墨球化良好,是熔制球墨铸铁的第一要求。
只有石墨球化,才能充分发挥金属基体的作用,使铸铁的力学性能大幅度提高。
也只有石墨球化后,进一步改变基体的性能才更有意义。
国标中有把球铁石墨球化分级如表6。
表6球化级别
球化级别
说明
球化率(%)
1级
石墨呈球状,少量团絮,允许少量团絮状
≥95
2级
石墨大部分呈球状,余为团状和极少量团絮状
90--95
3级
石墨大部分呈团状,余为团絮状,允许少量蠕虫状
80--90
4级
石墨呈分散的蠕虫状球状团状团絮状
70--80
5级
石墨呈聚集分布的蠕虫状片状及球状团状团絮状
60--70
6级
石墨呈聚集分布的蠕虫状和片状及球状、团状、团絮状
不规定
采集下列a、b、c、d、e、f六种球墨铸铁的金相组织图来分析计算它们的球化率,评定其球化级别,结果如表7。
表