开发背景
晶界锯齿化是指金属材料经过适当的处理后材料中的晶界发生变化而呈现锯齿状特征,这种现象最早于1976年被作为镍基合金的晶界强化机制而提出,主要用于高温部件的材料研究中。晶界锯齿化的形成机理主要与晶格失配、应变、第二项析出和能量降低相关。实现晶界锯齿化目前主要通过控制热处理工艺,如固溶冷却速率,以及通过控制γ'相的析出行为来控制锯齿化的形成。金属材料在发生锯齿化后其性能会发生明显改变:锯齿状晶界能够有效阻止晶界上裂纹孔洞的形核与长大,同时减少应力集中并增加晶界滑移距离,从而降低材料在高温下晶界的移动速率,并且提高材料的蠕变抵抗能力。因此,晶界锯齿化对提升金属材料的高温力学性能具有重要的意义,尤其是提升蠕变性能和抗疲劳裂纹扩展能力方面。
编写说明
本软件是用Python语言编写,使用Tkinter库编写可视化界面,使用PIL和OpenCV库进行图像处理,使用Matplotlib库进行统计图的绘制,使用Threading进行多线程任务的协调管理,使用Pyinstaller对软件整体进行打包和配置。
实现功能
晶界锯齿化表征软件的主要功能是图像前处理及晶界网络提取,单段晶界拆分与采样,晶界锯齿化指数计算以及后续的统计,实现了从输入图像到输出各段晶界锯齿化指数结果。经过一些列处理及计算后,将晶界锯齿化指数标注在对应晶界网络位置的锯齿化指数标注图。软件在基于FFT的晶界锯齿化指数计算方法的基础上实现了对大量晶界快速且精准的统计分析,相较于传统的手工测量波长振幅更加精确客观,相较于基于FFT的晶界锯齿化指数计算方法更加快速,同时可以对图像内大量晶界进行自动化的计算与统计。晶界锯齿化表征软件进行的主要表征过程分为图像采集、图像前处理、滤杂处理、晶界网络提取、拆分单段晶界、晶界锯齿化表征以及后续的数据统计七个部分。实现了从图像中获取晶界信息后进行锯齿化指数计算并统计结果的功能。
图像前处理主要用于凸显晶界形貌特征以及对晶界部分进行标准化,主要包括如下四个部分:
(1)滤波处理:主要用于降噪以及平滑图像,减轻噪点对图像的影响;
(2)单通道处理:使彩色的图像转变为单通道,用于减少软件计算量;
(3)直方均衡化:用于调整明暗对比度,使图像更加清晰;
(4)标准化:使晶界与非晶界像素变为255和0。
经过图像前处理部分的操作获得了较为清晰且二值化后的晶界形貌,为后续连通域检测和形态学操作创造条件。
滤杂处理有两个部分,其一是通过连通域检测分割图像,并根据每一区域的连通域面积对区域进行筛选,目的是除去噪点以及离主要晶界部分较远的小段无效晶界;其二是通过形态学操作对晶界区域进行调整,目的是减少毛刺,使晶界更加均匀,目的是在细化时减少产生不必要的交点。
晶界网络提取主要对滤杂后的二值化图像进行了细化处理。三叉界角指的是晶界网络中晶界的交点,由于经过了细化处理,目前晶界网络中的宽度均为1像素,标准化后可将晶界网络当作只包含0或1的矩阵。查找三叉界角使用了3x3的卷积核,卷积核中心点为0,其余8个点为1。当卷积核覆盖图像中的一个交点时,卷积核的每个非零元素(即1)都会与交点周围的像素进行乘法操作。由于交点处至少有三个方向的网络线相交,卷积核至少会覆盖到三个1的像素值。因此,卷积结果将至少为3,这表明该位置是一个交点。单段晶界拆分是根据三叉界角检测结果中交点位置所进行的,将交点位置设为0后,使用连通域分割晶界网络,根据其每个连通域的面积做晶界长度统计分布。此处晶界网络宽度均为1像素,因此连通域面积可近似作为晶界长度。根据长度筛选后的晶界将会被截取下来,重新分别绘制在单张图像中并保存下来用于锯齿化指数计算。晶界锯齿化指数计算使用了基于FFT的锯齿化指数计算方法。晶界锯齿化表征软件使用了较新的基于FFT的锯齿化指数计算方法,结合视觉处理和卷积运算设计了一套快速精准,且可以大量计算和统计锯齿化特征的表征方法,并为此方法编写了此软件,目前市面上并无同类型软件。软件编写时预留可调参数范围较大,兼容性较好,使用视觉处理的方法使得用于表征的图像并不仅局限于某一种图像。目前本软件在奥氏体钢材料的锯齿化研究中运行稳定,数据可靠。打包软件功能完整,可以流畅运行并正常进行数据统计。