认识到在规则网格扭曲 [英] Recognizing distortions in a regular grid

查看:214
本文介绍了认识到在规则网格扭曲的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

要告诉你一些背景,以我在做什么:我想通过图像分析定量记录变化流动COM pressible液。要做到这一点的一种方法是利用一个事实,即折射流体的折射率直接相关的密度。如果设置了某种的流动,在图像中的失真的后面图像的由于折射率变化在整个流场导致你的密度梯度,这有助于表征流动模式

To give you some background as to what I'm doing: I'm trying to quantitatively record variations in flow of a compressible fluid via image analysis. One way to do this is to exploit the fact that the index of refraction of the fluid is directly related to its density. If you set up some kind of image behind the flow, the distortion in the image due to refractive index changes throughout the fluid field leads you to a density gradient, which helps to characterize the flow pattern.

我有一组例程,这样做成功地与点的普通的2D模式。点阵图形稍有变形,并通过与比较,在扭曲的形象在非失真图像的点的位置,我得到了位移场,而这正是我需要的。这种方法的问题是分辨率。分辨率被限制为在该领域的点数,以及我探索,让我更多的数据的方法。

I have a set of routines that do this successfully with a regular 2D pattern of dots. The dot pattern is slightly distorted, and by comparing the position of the dots in the distorted image with that in the non-distorted image, I get a displacement field, which is exactly what I need. The problem with this method is resolution. The resolution is limited to the number of dots in the field, and I'm exploring methods that give me more data.

一个想法我已经是使用水平和垂直线规则的网格。此图像会扭曲以同样的方式,而是获得一个点只流离失所,我将有一个网格的不断变形。看起来一定是有标准的算法或程序,一个几何格比较到另一个推断某种位移场。不过,我还没有发现这样的事情在我的研究工作。

One idea I've had is to use a regular grid of horizontal and vertical lines. This image will distort the same way, but instead of getting only the displacement of a dot, I'll have the continuous distortion of a grid. It seems like there must be some standard algorithm or procedure to compare one geometric grid to another and infer some kind of displacement field. Nonetheless, I haven't found anything like this in my research.

有没有人有一些想法,可能指向我的方向是正确的?仅供参考,我不是一个计算机科学家 - 我是工程师。我说,只是因为可能有一些明显的方法,我忽略了由于来自不同的领域来了。但是,我可以计划。我使用MATLAB,但我可以阅读的Python,C / C ++等。

Does anyone have some ideas that might point me in the right direction? FYI, I am not a computer scientist -- I'm an engineer. I say that only because there may be some obvious approach I'm neglecting due to coming from a different field. But I can program. I'm using MATLAB, but I can read Python, C/C++, etc.

下面是我正在使用的图像类型的例子:

Here are examples of the type of images I'm working with:

     Regular:                               Distorted: 

--------

--------

推荐答案

我认为你正在寻找的 数字图像相关 算法。

I think you are looking for the Digital Image Correlation algorithm.

在这里,你可以看到一个演示。

这里是一个Matlab的实现。

维基百科:

数字图像相关和跟踪(DIC / DDIT)是采用跟踪及放光学方法;图像配准技术的变化图像的精确二维和三维测量。这通常用于测量变形(工程),位移,应变,但它被广泛应用于科学和工程的许多领域。

Digital Image Correlation and Tracking (DIC/DDIT) is an optical method that employs tracking & image registration techniques for accurate 2D and 3D measurements of changes in images. This is often used to measure deformation (engineering), displacement, and strain, but it is widely applied in many areas of science and engineering.

修改

在这里,我使用应用DIC算法的图像失真 数学 ,表示相对位移。

Here I applied the DIC algorithm to your distorted image using Mathematica, showing the relative displacements.

修改

您也可以很容易地识别出最大位移区:

You may also easily identify the maximum displacement zone:

修改

在一些工作(相当多的,坦率地说),你可以拿出来这样的事情,再presenting的位移场,清楚地表明你正在处理一个漩涡:

After some work (quite a bit, frankly) you can come up to something like this, representing the "displacement field", showing clearly that you are dealing with a vortex:

(较暗,更大的箭头意味着更多的位移(速度))

(Darker and bigger arrows means more displacement (velocity))

发表我的评论,如果你有兴趣在数学code这一个。我想我的code是不会帮助任何人,所以我省略张贴。

Post me a comment if you are interested in the Mathematica code for this one. I think my code is not going to help anybody else, so I omit posting it.

这篇关于认识到在规则网格扭曲的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆