当前位置: 服务支持 >  技术文档 >  MATLAB花招:处理扫描电镜照片并计算第二相比例

MATLAB花招:处理扫描电镜照片并计算第二相比例

阅读数 79
点赞 68
copyright 著作权
article_banner

前情提要:毕业季许多同学要做扫描电镜,而背散射电子成像是分析材料第二相区域的有效方法(背散射电子像对原子序数敏感)。一般来说,使用ImageJ或PS软件可以手动调节材料的灰度区域,并计算出第二相区域的比例。但是,如果进行了大规模的对照试验需要得出统计规律时,这种方法面临许多问题:

  1. 手动选取灰度区域质量不佳,且不同图片不具有一致性,不够严谨
  2. 对于大量的图像处理,效率过低

在此提出一种针对大规模数据处理的材料第二相识别的MATLAB解决方案。

1 文件的读取

对于命名极有规律的电镜照片文件(如500-2-0003.tif)可以使用for循环结合sprintf函数生成文件名字符。在此需要注意,对于0003、0010这两种文件,sprintf中%d的数目不同。

for i=1:15
    if i<10
        X=sprintf('%d%s%d%s%d%d%d%d%s',500,'-',46,'-_',0,0,0,i,'.tif');

2 图像处理

首先看一张典型的背散射电子像图案:

某七系铝合金时效处理后的背散射电子像,第二相为含Cu金属间化合物故较亮

可以看到,第二相的边缘较为清晰,易于分辨,可以使用图形的二值化方法对图像进行处理后分辨第二相。同时注意到扫描电镜图像的背底中存在较多的椒盐噪声(类似于雪花点)。所以,对图像需要进行一步滤波处理。以上即为对电镜图象处理的基本思路。

首先,注意到图形的数据格式为rgb,要对图像进行灰度处理。

grayplot=rgb2gray(imread(X));

对于电镜图像中弥散分布的椒盐噪声,可以使用中值滤波的方法。中值滤波是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。

g=medfilt2(grayplot,'symmetric');
bw = im2bw(g);

其中,im2bw函数使用了Otsu算法对灰度图进行二值化,对于滤波后的电镜图象,效果良好。

导出二值化图像可以使用print函数

imshow(bw);
print(gcf,'-r300','-djpeg',X1);

二值化图像如下图所示:

二值化的背散射电子像

之后用find函数查找二值图像中白色像素点个数,比上总像素点个数就能得到第二相占总体比例。

[a,b]=size(bw);
part=[part length(find(bw==1))/(a*b)];

希望有帮助

相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空