Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
为您提供一些背景信息:我正在尝试通过图像分析定量记录可压缩流体的流量变化。一种做到这一点的方法是利用流体的折射率与密度直接相关的事实。如果在流后设置某种图像,则由于整个流体场中的折射率变化而导致的图像失真会导致您产生密度梯度,从而有助于表征流型。
我有一组例程,可以使用规则的2D点图形成功完成此操作。点图案略有扭曲,通过将扭曲图像中的点的位置与非扭曲图像中的点的位置进行比较,我得到一个位移场,这正是我所需要的。这种方法的问题是分辨率。分辨率限制为该字段中的点数,我正在探索为我提供更多数据的方法。 我曾经有一个想法是使用水平和垂直线的规则网格。该图像将以相同的方式变形,但是我将得到栅格的连续失真,而不仅仅是获得点的位移。似乎必须有一些标准算法或过程才能将一个几何网格与另一个几何网格进行比较,并推断出某种位移场。尽管如此,我在研究中还没有找到类似的东西。 有没有人有一些想法可以指出我正确的方向?仅供参考,我不是计算机科学家,而是工程师。我说这只是因为可能来自其他领域而忽略了一些明显的方法。但是我可以编程。我正在使用MATLAB,但可以阅读Python,C / C ++等。 以下是我正在处理的图像类型的示例: Regular: Distorted: ![]() ![]() 回答: 我认为您正在寻找数字图像相关算法。 在这里您可以看到一个演示。 这是Matlab实现。 从维基百科: 数字图像相关和跟踪(DIC / DDIT)是一种光学方法,采用跟踪和图像配准技术对图像变化进行精确的2D和3D测量。它通常用于测量变形(工程),位移和应变,但已广泛应用于科学和工程的许多领域。编辑 在这里,我使用Mathematica将DIC算法应用于失真的图像,显示了相对位移。 ![]() 编辑 您还可以轻松确定最大位移区域: ![]() 编辑 经过一些工作(坦率地说,有点),您可以得出这样的结果,表示“位移场”,清楚地表明您正在处理涡流: ![]() (更深和更大的箭头意味着更大的位移(速度)) 如果您对此Mathematica代码感兴趣,请给我发表评论。我认为我的代码不会对其他人有所帮助,因此我忽略了发布它。 更多&回答... |
![]() |
![]() |