一、概念
数字图像相关(Digital Image Correlation,DIC)是一种用于测量物体表面位移和应变的非接触性光学测量技术。它的工作原理涉及图像处理和分析,通常包括以下步骤:
-
图像获取:DIC的第一步是获取物体的图像。通常使用一台或多台相机来捕获物体的表面。这些图像可以在不同加载条件下或不同时间点拍摄。在应用中,通常会选择高分辨率的相机以获得精确的数据。
-
初始化:在开始之前,需要对图像进行初始化。这包括设置坐标系统、选择感兴趣的区域或表面,并标定相机,以确保精确的测量。
-
特征点提取:DIC软件会分析图像,寻找物体表面的特征点。这些特征点可以是明显的点、纹理或其他可用于跟踪的特征。通常,这些特征点在不同图像之间会有一定的对应关系。
-
匹配:一旦提取了特征点,DIC软件会在不同图像之间匹配这些特征点。这是一项关键的工作,它允许软件跟踪这些点的位置,从而测量位移和形变。
-
位移计算:DIC通过比较特征点在不同图像之间的位置来计算物体表面的位移。这通常涉及到子像素级的位移测量,以提高测量的精确度。
-
应变计算:位移计算后,DIC可以计算物体表面上的应变。应变是位移的导数,它提供了有关物体变形的详细信息。
-
结果可视化:最后,DIC软件通常会生成可视化的结果,如位移图、应变图和形状变化图。这些结果帮助研究人员更好地理解物体的变形和应力分布。
总的来说,DIC是一种强大的工具,可用于研究材料的机械性能、结构的响应以及其他应用领域的变形分析。它是一种非接触性测量方法,因此非常适合在实验中使用,以避免对被测物体造成损害。 DIC的精确性和分辨率通常受到图像质量、特征点密度和相机标定的影响,因此在应用中需要仔细考虑这些因素。
二、MultiDIC学习记录
开源在https://github.com/MultiDIC/MultiDIC
配置:作者的MultiDIC是在MATLAB版本2017a和2017b上开发的,在R2021b上进行了测试。在下载完成MultiDIC后将文件解压放到matlab的toolbox文件夹里,如下:
然后在matlab界面点击APP-安装APP-选择MultiDIC文件夹-选中下面的文件-打开,完成后重启或在主页-预设更新一下APP
环境设置:
1.MultiDIC包括2D-DIC软件Ncorr,它需要一个MEX (c++)编译器。安装:matlab MinGW-w64 C/C++ Compiler 的配置(附百度云下载资源)_mingw-w64 6.3 百度网盘-CSDN博客
2.需要四个工具箱:Simulink / Image Processing Toolbox / Statistics and Machine Learning Toolbox / Computer Vision System Toolbox
可输入以下两个命令检查是否配置完成:
程序调用:
installMultiDIC
在fx后面输入上述命令,如果安装没有问题配置完成将弹出如下界面:
这里就是MultiDIC中包含的2D-DIC软件Ncorr,到这一步已经可以进行二维的图像处理:
在具体操作之前必须提到的是这个开源有自己的命名规则,在官网给出的manual里解释如下:
简单来说就是你需要处理的一组照片名字必须是“项目名称-下划线-序号”的格式,如SONY_01,且顺序不能混乱。接下来是具体处理步骤:
1.导入reference image,也就是变形前的图像,在界面的file-load reference current image,选择需要的照片
2.导入current image,也就是你需要计算的图像,file-load current image,选择命名格式正确的一组图像,在里面有两个小的可选项load all和load lazy,通俗的解释就是你要选择一次性导入图像的全部计算点存储还是在计算的时候再拉取相关图像,建议选择all
3.设置reference ROI,也就是监测的变形区域,在region of interest-set reference ROI,这里也有两种方式,一种是直接在图上绘制,另外一个是导入你已经设置好的图像,官方给的教程是导入设置好的图像,这个方法好在不需要后续再一个个操作,每次计算都可以直接选择,可以根据自己的情况自行调整。
完成后如图:
4.设置DIC参数,在analysis-set DIC parameter,主要需要考虑的是subset radius子区的半径和subset spacing子区的步长,步长建议默认1不变,这里的1是指按照导入的照片逐张分析而不是按照一定的间隔分析。子区半径需要根据自己的数据自行调整,一开始可以按照默认的大小进行,半径的选用原则是越小越好,但是小半径会产生噪点过多或者一些其他的问题,需要根据自己的情况调整,程序计算速度不慢,可以尝试多换几个不同梯度的参数比较一下。
如果对精度有特殊要求可以研究一下它的算法,根据算法修改收敛判断等,可参照DIC检测算法 - 知乎 (zhihu.com)
5.执行DIC分析,perform首先需要选择计算的区域,在弹出的界面选择,左键即可,然后需要选择种子点,点击set seeds,选择种子点的原则主要看清晰度和位置,选择清晰不会被遮挡且靠中间的位置。选择一个位置点击finish会弹出一个对话框确认,确认完成后程序会监测选的种子点是否在每张图片都都可用,如果此时报错请选择cancel,不要继续finish,回去重新选择种子点的位置。可以设置多个。
对选定的种子点进行检测:
常见报错如下图, 此时点确定会弹出哪个地方丢失数据了,这个时候点击左上方的cancel回去重新选,不能继续finish,这个软件是开环控制,点finish会一直继续计算到最后查看应力图才会提示你中间哪里有bug看不了,白白浪费很多时间(一些踩坑实录)
上述步骤无报错完成后可以一直点finish出现progress界面,此时程序在逐张处理数据,处理的速度取决于图片质量,等待完成点确定即可。
6.位移标定,在Analysis-Format Displacements,根据自己的图像进行格式化即可,如果按照像素点就先默认,需要修改点击Get Unit Conversion,导入图片进行标定后finish。噪点可能导致最后结果偏大/偏小,可以简单调整一下(看自己需求),需要调整可以去掉一些极值,点cut off下面的左键调整,图里忘框了,全部完成后finish-yes
7.设置应变参数,plot-caculate strain,这里主要修改应变半径,可以调整preview中点的位置观察右边displacement-pixels的变化,最好的情况是不要有太大的波动,趋势平滑,如果变化比较大把半径调小,我选用范围是2-10,根据自己的情况选择。yes后等待结果
8.观察结果,在plot-view strains plots,如果前面操作没有问题,现在就可以查看得到的2D-DIC结果了
数据后处理:待更...
3D-DIC