概述
PIVlab是做图像粒子测速的一个开源软件,这个软件主要分析2D2C场景。用matlab语言写的一个GUI.源码下载地址:
PIVlab - 带有 GUI 的粒子图像测速 (PIV) 工具 - 文件交换 - MATLAB Central (mathworks.cn)
因为项目上用到了该软件,在这里记录一下使用说明。
【中英双语】PIVlab 新手快速入门指南教程_哔哩哔哩_bilibili
这个是William博士,即PIVlab开发者的教程视频,有兴趣的可以直接看这个。
界面介绍
打开matlab切换到源码路径,找到PIVlab_GUI.m,双击运行,会进入到PIVlab的主界面
界面主要分为文件操作、图像预处理、PIV分析、标定、后处理、显示、合成粒子等模块。像图像获取连接相机的基本上用不到,一般直接加载图像进行处理即可。
这里开发者他们也将软件的模块写了详细说明,可以参考
PIVlab – Towards User-friendly, Affordable and Accurate Digital Particle Image Velocimetry in MATLAB
Particle Image Velocimetry for MATLAB: Accuracy and enhanced algorithms in PIVlab
读取测试图像
2D2C的PIV粒子图像通常会有单相机单帧采集、单相机双帧采集。通常情况下,单帧在时间域上的粒子亮度一致性较好,双帧相机会因为系统调试误差导致亮度一致性很差,在应用中的效果受采集因素影响,计算获得的流场也会变差。
在源码安装包中有自带的示例图,Examples里面有视频、图像序列。
Fuerteventura系列是岩土沙粒的PIV场景,使用的彩色相机拍摄。但是通常情况下,都是采集的灰度图,底层也是转换成灰度图像进行分析的。
Jet系列是典型的双帧相机拍摄,示例中AB帧的亮度变化不大,这个需要配合跨帧时间和激光器一起调试才能得到这种效果。
PIVlab_Karman系列是B站视频教学用到的卡门涡示例,这里只有4张数据,源数据没有提供。
synthetic系列是仿真合成的图像,基本上满足了亮度均匀度都比较好的场景。
这里先加载图像
左上角File-》New session-》Import images
单帧采集即为时间序列,比如1~2计算一帧流场,2~3计算一帧流场,3~4计算一帧流场,以此类推,若加载N张数据,最后获得的流场应为N-1
双帧采集和单帧有所不同,也是时间上连续,但是实际计算时时间间隔应为AB帧跨帧间隔,而非1A与2A之间的时间间隔。此时计算原理应为1A~1B,2A~2B,3A~3B,以此类推,若加载N张数据,最后获得的流场应为N/2,N必须为偶数
点击"Import"按钮后,主界面会显示出加载的图像第1帧图像。这里会发现将时间连续的图像,按照双帧的格式进行处理,复制了图像凑成了AB格式。
读取测试视频
视频序列基本上和时间连续的单帧采集一样
点击Import video按钮,会弹出读取子界面
先就讲这么多吧,读入数据没什么复杂的,底层代码在loadimgsbutton_Callback函数中调用的uipickfiles.m中,有兴趣的同学可以直接看源码