0%

利用Image J进行第二相尺寸和分布分析

摘要:第二相的尺寸和分布分析是材料分析中重要的一环。通过Image J软件,我们可以实现统计不同大小的颗粒占整个图像的面积。

写在前面

“相 (Phase)”是指成分和组织均匀统一的物质部分。在金属材料中,一般除了基体相外,还会存在许多的“第二相”。虽然在数量上,这些第二相不会有太大优势,但其对于整个金属材料的性能影响往往是巨大的。

第二相与基体相之间存在相界面,界面处协调不好就很可能成为裂纹萌生的起源。而第二相尺寸越大,界面处的 协调就越困难;随着第二相尺寸的减小,界面处的协调会变得愈加容易。第二相可以存在于晶界,削弱晶粒之间的协调性,从而降低金属材料的塑性;第二相也可以弥散分布于基体中,在变形过程中阻挡位错运动,从而提高金属材料的强度。这种通过第二相的析出对金属屈服强度进行提高的方法,称为“第二相强化”。

由以上分析可知,第二相的尺寸和分布分析是材料分析中重要的一环。通过Image J软件,我们可以实现统计不同大小的颗粒占整个图像的面积

Image J具体操作

笔者在之前的博文中已经介绍了Image J软件。

同样的,今天我们仍然需要先打开软件。

统计不同大小的颗粒占整个图像的面积的应用需求,实际上与Image J经典应用——“颗粒统计 (particle analysis)”本质相同。下面我们就来讨论具体的实施方法。

1. 设置比例尺。

本图是SEM导出的原图,上面有比例尺。比例尺设置的具体操作与晶粒尺寸测量时类同,请参考笔者博文(利用Image J进行晶粒尺寸测量)。

2. Photoshop灰阶处理。

通过Photoshop将以上图片进行灰阶(增强图像对比度)和裁剪(将比例尺去除)处理后,得到下图:

对图片的灰阶进行调节后,图像对比度有了明显提升,去除了图像噪点,方便了接下来所需进行的图像二值化操作。

3. 二值化处理。

这时候将上图在Image J软件中打开,如下图所示:

将图片设置为8-bit的灰阶图像,依次单击Image->Type->8-bit。

然后将图片进行二值化处理,依次单击Process->Binary->Make Binary,从而得到下图:

4. 第二相粒子分析。

接下来我们可以单击Analysis->Analysis Paticles…,对弹出窗口进行如下填写:

单击“OK”后开始执行任务。任务结束弹出三个新的窗口,如下图所示:

上图为被本次任务统计在内的粒子。

统计结果显示,本次任务共有223个粒子被统计,各自面积在“Area”列内显示,可以通过File->Save对该数据进行保存。

汇总结果显示,本次任务共有223个粒子被统计,总面积6.096μm^2,平均每个粒子0.027μm^2,占整个图像面积的0.302%,同样地,可以通过File->Save对该数据进行保存。

Image J脚本 (Scripts)

对少量样品进行第二相(颗粒)分析,那么以上方法便已经足够了。

但我们知道,一个实验中,样品往往不止一个,甚至会是几十上百个;一次实验统计后也许结果还不会一步到位,这也意味着这种机械过程可能要进行多次。这种工作不仅占用了科研人员宝贵的思考时间,还容易使科研人员产生疲劳,从而使统计结果出现错误。那么是否有办法避免这种机械的重复工作呢?

机械的重复工作正是计算机所擅长的。Image J软件也为我们提供了脚本编程方法。

Image J Scipts源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
run("8-bit");
setOption("BlackBackground", false);
run("Make Binary");

filename = getTitle();

run("Analyze Particles...", "size=0-0.5024 show=Outlines display summarize");
saveAs("Results", "F:\\Personal\\Desktop\\0-0.5024.txt");
run("Clear Results");
run("Close");
run("Analyze Particles...", "size=0.5024-3.14 show=Outlines display summarize");
saveAs("Results", "F:\\Personal\\Desktop\\0.5024-3.14.txt");
run("Clear Results");
run("Close");
run("Analyze Particles...", "size=3.14-inf show=Outlines display summarize");
saveAs("Results", "F:\\Personal\\Desktop\\3.14-inf.txt");
run("Clear Results");
run("Close");
run("Analyze Particles...", "size=0-inf show=Outlines display summarize");
saveAs("Results", "F:\\Personal\\Desktop\\0-inf.txt");
run("Clear Results");
run("Close");

saveAs("Tiff", "F:\\Personal\\Desktop\\" + filename);
selectWindow("Summary");
saveAs("Text", "F:\\Personal\\Desktop\\Summary.csv")

代码解析

将图片转为8-bit格式。

1
run("8-bit");

图片二值化。

1
2
setOption("BlackBackground", false);
run("Make Binary");

获取导入图片名字到“filename”,在后续命名操作中能用到。

1
filename = getTitle();

运行”Analyze Particles…”,统计尺寸范围在$ 0-0.5024 \mu $m$^{2}$之间的粒子,“Show”的下拉选项中选择“Outlines”,并勾选复选框“Display results”和“Summarize”。

后来几句类似的语句,分别统计了尺寸范围在$ 0.5024-3.14 \mu $m$^{2}$之间和 $ 3.14 \mu $m$^{2}$ 以上的粒子,最后还统计了所有粒子的面积占比。

1
run("Analyze Particles...", "size=0-0.5024 show=Outlines display summarize");

保存结果文件。

1
saveAs("Results", "F:\\Personal\\Desktop\\0-0.5024.txt");

其余命令也比较方便理解,大家若不是很明白可以自行调试,或者联系笔者。
Email: mozheyang@outlook.com