Matlab图形图像处理在定量金相分析中的应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab图形图像处理在定量金相分析中的应用

摘要:本文讨论了Matlab的图形图像处理功能如何应用到定量金相分析研究中,并通过晶粒度测定和两相合金中第二相颗粒几何尺寸测量两个实例进行了验证。结果表明采用该软件可以高效、方便地实现定量金相分析功能。

关键词:Matlab 图形图像处理定量金相分析

1. 引言

1.1 定量金相分析和体视学

金相分析是材料科学中的一项重要技术,其实质是观察金属材料微观结构的图像并做出分析和判断的过程。在这个过程中,金属材料微观结构图像是核心。通过显微镜的观察,可以鉴别各种组织,观察其组织特征,并建立起组织和性能间的定性关系。这对于材料的研究、生产和使用无疑具有极大的理论意义和实际意义。而定量金相正是通过测定显微组织的各种特征参数,在材料的微观组织和它的宏观性能间建立起定量关系的一种分析测试方法。

我们研究的材料通常是不透明的,因此不能直接观察组织的三维立体图像,只能在二维金相试样磨面或薄膜透射投影图上对材料组织进行测量,然后去推断三维图像。这种从二维图像直接去推断三维组织图像的科学就叫体视学,把体视学应用于金相学研究的科学就叫定量金相学。

定量分析中常用的体视学基本方程有:

1.2 Matlab简介

Matlab是由MathWorks公司开发的一种主要用于数值计算及可视化图形处理的工程语言。它将数值分析、矩阵计算、图形图像处理、信号处理和仿真等诸多强大的功能集成在较易使用的交互式计算机环境之中,为科学研究、工程应用提供了一种功能强、效率高的编程工具。Matlab图形处理工具箱有一百多种工具函数,包括图像类型转换、图像文件I/O和显示、线性滤波、图像统计分析、图像增强、图像的形态学分析、二值图像处理等多个方面。可见Matlab图形图像处理功能完全能够胜任定量金相分析工作。

2. 定量金相分析的Matlab实现

基本思路:原始图像读入→图像预处理(直方图均衡化、图像增强、平滑滤波)→图像二值化→二值图像形态学处理(腐蚀、膨胀、开运算、闭运算)→图像分割及特征提取(边缘检测、面积提取)→利用体视学公式计算所需的三维组织特征参数。

2.1 图像读入

可用工具箱中的imread函数读入图像,Matlab支持以下几种图像文件格式:BMP、GIF、TIFF、JPEG、HDF、PCX、XWD、PNG、ICO、CUR、PGM、PPM和RAS等类型,imshow函数显示图像,imwrite函数保存图像。

2.2 图像预处理

对于一幅图像如果整体进行处理,不仅浪费时间,而且图像其他部分可能会影响处理效果,可以先通过图象剪切函数imcrop剪切下我们所关心的、特征明显的一部分图像,然后再对这部分图像进行相关处理。

图像预处理是相对于图像识别、图像理解的一种前期处理。通常图像会出现边缘过于模糊;图像上出现一些不知来源的黑点或白点;图像失真、变形等,因而要进行图像增强,按特定需要突出一幅图像中的某些有用信息,同时,削弱或去除某些不需要的信息,改善图像质量。如改变图像对比度、去除噪声或强调边缘等处理。

图像增强主要包含灰度变换增强、图像平滑处理、图像锐化处理等。

灰度变换增强主要用的是直方图均衡化histeq和对比度增强imadjust。

图像平滑主要目的是减少图像噪声。Matlab提供的图像平滑函数主要有wiener2、medfilt2和ordfilt2。wiener2用于实现线性平滑滤波;medfilt2用于实现中值滤波;ordfilt2是二维统计顺序滤波,它是中值滤波的推广。

图像锐化的目的就是使边缘和轮廓线模糊的图像变得清晰,并使其细节清晰。因锐化会使噪声受到比信号还强的增强,故一般是先去除或减轻干扰噪声后才能进行锐化处理。可以用laplacian算子锐化和prewitt模板锐化。

2.3 图像二值化

Matlab提供了多种图像类型转换函数,其中二值化图像函数主要有dither和im2bw。函数dither通过颜色抖动来达到转换图像的目的,函数im2bw通过设置阈值将灰度及真彩图像转换成二值图像。

2.4 二值图像数学形态学处理

数学形态学运算主要包括膨胀运算imdilate、腐蚀运算imerode、开运算imopen与闭运算imclose,以及利用形态学运算族bwmorph 对图像进行多种处理。

2.5 特征提取及特征参数计算

特征提取就是给出某一具体图像中与其它图像相区别的特征,如描述物体外形的形状特征等。Matlab提供的edge函数用于灰度图象边缘检测,bwperim函数用于二值图像边缘提取,bwarea用于二值图像面积测量,bwlabel实现连接成分标记等。

3. 实例分析

3.1 晶粒度的测定

材料的晶粒的大小叫晶粒度。它直接影响着材料的相关力学性能,因而测量晶粒度具有十分重要的实际意义。材料的晶粒度一般是以单位测试面积上晶粒的个数来表示。目前世界上统一使用的是美国ASTM推出的计算晶粒度的公式:

式中G为晶粒度级别,NA为显微放大100倍下6.45cm2的面积上晶粒的个数。

基本思路:将100倍放大后的金相显微组织图读入内存,将其经图像增强及二值化后,进行边界细化处理,利用函数bwlabel返回测量面积内晶粒的个数,然后利用测量结果计算出NA,再根据公式(3.1.2)计算相应的晶粒度级别。

程序如下:

i=imread('jl2.jpg');%读入图像

g=rgb2gray(i);%转变为灰度图

figure,imshow(g);%显示图像

im=imadjust(g,[0.5,1],[],1.4);%对比度增强

m=medfilt2(im);%中值滤波处理

figure,imshow(m);

bw=im2bw(m);%图像二值化

figure,imshow(bw);

bw1=bwmorph(~bw,'thin',Inf);%细化处理

bw2=~bw1;%图像取反

bw3=imcrop(bw2);%剪切典型测量区域

[l,n]=bwlabel(bw3,4);%计算测量面积内晶粒的个数n

3.2 第二相颗粒几何尺寸测量

对于两相合金,第二相的数量、尺寸、几何形状都对合金的性能有很大影响,因此,常要测量第二相所占的百分比及平均自由程等。以下是测量第二相所占百分比。

基本思路:将原始图像经增强及二值化形态学处理后,利用面积提取函数bwarea获得特征参数AA,再根据体视学基本方程计算出其他需要的参数。

程序如下:

i=imread('45.jpg');

g=rgb2gray(i);

subplot(221),imshow(g);

im=imadjust(g,[],[],1.5);

w=wiener2(im);%维纳滤波

subplot(222),imshow(w);

bw=im2bw(w);

subplot(223),imshow(bw);

se=strel('disk',3);%创建圆盘形strel对象

bwc=imclose(~bw,se);%对取反后的二值图像进行闭运算

bwco=imopen(bwc,se);%对闭运算后的图像进行开运算

bwco1=~bwco;

subplot(224),imshow(bwco1);

a=bwarea(bwco)/(bwarea(bwco)+bwarea(bwco1));%计算第二相所占面积百分比

4. 结论

通过以上讨论及两个实例分析可以看出,利用Matlab只需几个简单的函数就能实现复杂的处理和计量过程,不仅避免了人工在测量时结果不可靠、精度不高的缺点,也免去使用其他软件时繁琐的编程工序。可见Matlab强大的图形图像处理功能,可以很好地满足定量金相分析工作。

图一图二

相关文档
最新文档