写在前面
自从2017年做自媒体开始,应后台网友要求,在2019年12月18日创建了结构分析表征qq群,群内的各位大佬一直相互扶持,互相帮助,群成员最高超过1300人(感谢西湖大学吕总的支持),难免的,随着旧群友的陆续退役,自媒体教程更新频率下降,盛极而衰,目前仅有970人,人数仍在进一步下滑中。雪上加霜的是,由于QQ会员到期,目前的群已经不能加人,但是并不妨碍群友之间的友好交流、学习和吹水(如果仍有入群需求,公众号后台回复群认真看要求,满足要求后可以加入其他QQ群或者微信群,群内谢绝广告、谢绝骂人)。
本公众号除了本人发布的一些教程外,有多篇推文出自群内大神之手,包括云南大学王总的荧光寿命系列推文(1-荧光寿命的定义,2-荧光寿命的数据处理,3-荧光寿命的测试,4-荧光寿命的数据分析),浙江大学刘总(测试)&杨总(数据分析)的莫特-肖特基计算平带电位系列推文(1-总览,2-测试和计算,3-视频)等都广受好评,感谢群内大神的无私分享。
今天的推文仍然来自群内资深群友隋博,隋博有电镜实操经验,对该方面研究有浓厚的兴趣,如果大家有TEM数据分析和测试方面的问题,尤其是AI辅助编程方面的问题,欢迎交流Ironweapon2018@gmail.com。
为了感谢各位大神的无私分享,我们也赠送了去年出版的工具书作为赠礼。也欢迎群内以及后台大神继续分享教程,后台回复“投稿”即可,除了分享自己制作的教程,也可以分享最新的文献(案例1,案例2,案例3,案例4)和发布硕博招生需求。
由于教程较长,将分为两篇来介绍:第一篇介绍原理、准备工作、操作流程和实际操作,第二篇介绍所用的AI代码。
前言
最近有群友问作者,如何实现下图中的这种HR TEM不同晶面下的伪彩上色,从而可以获得一个晶面分布可视化图,用来分析材料的晶粒取向、晶界和局部结构。因此作者撰写了该教程。本文旨在说明如何对HR TEM进行伪彩上色,本教程仅供个人观点,仅供参考。
伪彩图片示例
声明:本教程的撰写、实践过程使用了AI大模型进行探索和优化、文字编辑。
生成效果图如下(如对生成的图不满意,可以自己用ai对代码进行调整)。
准备
1.Gatan Microscopy Suite (GMS)软件
2.一张HRTEM照片
3.Python开发环境,Anaconda,Spyder等等。(如果没有可跳过)
开始前你必须要了解的知识
1.HR TEM 是什么。它是 TEM 的一种成像模式,利用透射电子束与样品的相互作用,通过相位衬度成像,能够直接分辨出原子尺度的晶格结构。高分辨 TEM 里看到的"晶格条纹"(lattice fringes),并不是原子本身的直接成像,而是透射波与衍射波相干叠加产生的干涉条纹。
2.FFT变换和IFFT变换是什么。FFT 把图像拆解成不同频率的成分(实空间 → 频域),IFFT 再把它们合回原图(频域 → 实空间)。二者是一对可逆操作。
3.FFT图像上的光点是什么,他和HR TEM里面的晶格条纹是什么关系。举一个例子,Au 纳米颗粒沿 [110] 带轴的 HRTEM 图会同时显示两组条纹:(111) 面的 0.235 nm 条纹和 (1-11) 面的 0.235 nm 条纹,夹角 70.5°。对应的 FFT 上就会看到两对亮斑,距中心距离相同(因为 d 相同),夹角也是 70.5°,整体呈现四个亮点围绕中心的图案。
(1)FFT 图上的每一对对称亮点,对应 HRTEM 图像中的一组晶格条纹:
(2)亮点离中心越远,说明对应的条纹越密
(3)几组条纹 → 几对亮点;非晶区域则没有尖锐亮点
因此伪彩(IFFT 彩色叠加)的基本思路是:
核心想法:
把 FFT 上不同的亮斑分别滤出来,各自 IFFT 回实空间,再给每组条纹涂上不同颜色叠加显示。用来区分不同取向的晶畴、孪晶、或不同晶面。
具体操作流程:
①对 HRTEM 图做 FFT,得到频谱
②在 FFT 上选取一组亮斑(比如 (111) 对应的两个对称点),用 mask 只保留它们
③做 IFFT,得到只含这一组条纹的实空间图像
④染上一种颜色(比如红色)
⑤换另一对亮斑(比如 (1-11))→ IFFT → 染成绿色
⑥把几张彩色图叠加在原 HRTEM 灰度图上
不同取向的晶畴会显示成不同颜色区域,孪晶界、晶界、堆垛层错的位置一目了然——因为颜色的切换直接标出了条纹方向改变的地方。
本质上就是傅里叶滤波 + 颜色编码:用 FFT 的点阵把实空间混在一起的多组条纹分离开,再用颜色把它们重新可视化。
现在我们有了操作的思路就可以上手实践了。
1.打开GMS软件

2.打开想要处理的文件

3.对其进行FFT变换

4.得到FFT变换图并放大

5.右键点击FFT图片,利用Mask工具将Mask覆盖对应的亮斑。如图所示,总共分为三组亮斑。注意mask的工具选择圆形对称工具。

6.每次选择只选择一组亮斑,然后在上方工具栏中的Process里面找到apply mask。注意在这一步的适合,mask的大小和位置以及能否覆盖所有亮斑会影响最终的结果,可以多次调试。

7.Apply mask后得到的结果如下图所示。

8.对apply mask后的图进行IFFT 变换,操作和变换效果如下图所示。


9.对其他两组mask后的图片进行相同操作。效果如下图所示。

10.将得到的三张IFFT图片保存,保存为dm3或dm4格式。至此我们最重要的一步已经完成。
11.下一步就是合并色彩通道,这一步作者直接采用了AI进行vibe coding,得到了一个python脚本,但是该脚本的使用需要安装anaconda或spyder,且安装有ncempy软件包(openNCEM项目开发的一个开源Python软件包,专为电子显微学(NCEM)数据处理和模拟设计。它提供了一系列用于处理、分析以及模拟透射电子显微镜(TEM)和扫描透射电子显微镜(STEM)图像和数据的算法和程序,支持DM3/DM4文件读取)。如果没有开发环境的同学,这里可以采取替代方案,利用chatgpt或claude的对话框直接运行python脚本。如图所示。

如果都不行,通过跟AI的对话,作者让AI编写了一个小的html工具,可以直接在浏览器中打开使用。界面和使用效果如下图所示:

出图效果如图:

总的来说,作者写这篇教程是感受到了如今AI大模型对效率的提升,对于变成小白完全可以通过vibe coding来制作简单的脚本来提高效率,例如批量处理数据批量画图等等。因此本教程只是抛砖引玉鼓励大家多用AI,多去教育AI,可以编写出你自己的实用小工具,大大提高自己的科研效率。
生成python脚本和html小工具的提示词放在下个推文。创作仓促,如有错误敬请原谅. 如对生成的图不满意,可以自己用ai对代码进行调整。
夜雨聆风