PIVlab软件使用(第二篇)

我滴老天奶,快9个月没写这个系列了,因为被裁员了,悲了个崔的,想想还是把这个系列写完吧

前言

看了下源码,原作者大大今年又更新啦,这次界面整的更好看了些

最简单直接的就是logo好看了很多。。。

找到PIVLAB_GUI.m,运行,界面变成了这样

上一次导入数据图像讲过了,这个版本基本上都一样的。这次我们先看看怎么出矢量场吧

计算矢量场

通常情况下,第一步是需要标定的,即m/s级,但很多图像序列没有提供对应的标定图像,可以看pix/s级的情况。在工程项目的Examples文件夹下面,有一些示例图像,读取两张卡门涡的吧

左上角有个分析Analysis

PIV 参数设置

PIV settings,主要是设置相关参数,根据当前的图像和先验知识配置,然后再进行计算。通常情况下,可以认为是一个预览,先看看第一帧结果大概上长什么样子,然后再去计算几百几千长的数据

ANALYZE!就是直接运行,运行当前帧或者全部帧,没什么说的,有一点,当几百张几千张同时载入计算,有的时候可能卡壳了,分析所有帧的那个按钮下面有cancel,可以结束当前进程,省的电脑死机了。。。

PIV算法

主要包括PIV相关计算的算法

FFT变形窗算法

这个算法是该作者主推的算法,代码在piv_FFTmulti.m中体现。详细原理在作者论文中或者其他论文里都有介绍...多级网格迭代的图像变形算法,用粗网格的计算结果为图像变形提供第一次的估 计位移,对细分网格采用图像变形提高位移计算精度。如果看英文原文比较吃力,也可以看看国内的一些相关算法的介绍,比如多级网格迭代的图像变形算法在PIV中的应用 (hanspub.org)

[xtable, ytable, utable, vtable, typevector, correlation_map,correlation_matrices] = piv_FFTmulti (image1,image2,interrogationarea, step, subpixfinder, mask_inpt, roi_inpt,passes,int2,int3,int4,imdeform,repeat,mask_auto,do_linear_correlation,do_correlation_matrices,repeat_last_pass,delta_diff_min)
输入参数

输入image1,image2就是待计算的相邻的两帧图像(单帧相机)或AB图像(跨帧相机)

interrogationarea,界面上设置的窗尺寸,也是相关计算时图像块的尺寸,注意PIVLAB中只用正方形块图像计算,没有长方形窗

step,Pass1设置的步长,可以是0%,25%,50%,75%,也就是其他软件中需要设置的重叠率

因为底层算法逻辑不一样,所以会存在一些区别,主要体现在矢量网格的密度上

mask_inpt就是遮罩点,roi_inpt想要分析的区域的端点,passes表示界面设置的层数,只勾选了Pass1,passes=1,若勾选了Pass2,passes=2,勾选了Pass4,那么前面几个强制勾选,passes=4

PIVlab中2-4层的重叠率都是窗的50%,是受底层其重建算法有关,其他软件貌似不受这个限制,而且做矢量对比也不好做,因为PIVLAB算法会自动将网格划分到居中计算,跟其他软件也不一样

其他几个参数就和鲁棒相关标准有关了,不怎么用。

输出参数

xtable, ytable, utable, vtable, typevector, correlation_map,correlation_matrices

xtable, ytable, utable, vtable表示了u,v速度矢量(像素级)在图像上划分的网格坐标位置x,y(像素级)上的情况,typevector表示当前的uv矢量标志,是遮罩特征或者其他,correlation_map表示了图像块相关计算收敛时所得的系数,注意只有相关计算才会有这个值

通道,窗,步长

通道,即窗和步长,重叠率之类的,怎么去划分网格的参数设置或者迭代多少层

这里最下面那个重复最后一个通道的质量阈值设置,也就是上面的delta_diff_min参数,迭代收敛阈值,就是上一次计算的矢量值与当前次计算的矢量值的差异均值是否满足小于0.025,如果满足就停止计算。

亚像素估计器

将整像素的相关峰计算的结果按一定算法估计亚像素结果,可以提高矢量计算的准确性。

通过将一维高斯函数(实线)独立地拟合到两个轴的相关矩阵(点)的整数强度分布来实现亚像素精度。3点高斯还是9点高斯,这个作者的论文有介绍。论文在第一篇有链接

鲁棒相关标准

PIVlab分三个级别,标准-》高-》极高,不同级别通常情况下算出的矢量准确性也是递增的,对应的时间也是递增的,尤其是极高,代码里面迭代了更复杂一点的算法,相当耗时,不推荐使用,有时候感觉还会过拟合,结果还不如低级别的。算法内部主要区别也就是插值方式,一个是双线性,一个是双三次。

PIV计算

对于大于窗即默认64*64的图像,可以直接默认所有参数,直接分析。点击Analyze current frame

会提示busy之类的弹窗,如果输入图像尺寸很大,肯定会耗时

这里全部都默认工具箱所有的参数,如果想要更好看的矢量场,需要进行预处理,比如图像增强,遮罩处理

这里多说一句,PIV相关也是我去年做的项目,也有不少记不太清楚了,而且我本身也不是流体力学相关专业的,很多可能更注重代码本身的理解,上层应用逻辑就不清楚了。

今天就写到这里吧,下期有时间再更新,有疑问可留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值