繁体   English   中英

如何将不规则的像素网格重新采样为规则网格?

[英]How to resample a irregular grid of pixels to a regular grid?

我正在尝试实现一种基于曲线插值的滚动快门失真消除算法,我在一篇论文中看到过( https://ieeexplore.ieee.org/document/6311354 )。 该算法包括为源图像中的每个像素计算新的 x 和 y 坐标。 现在我必须将创建的不规则像素网格重新采样为规则网格,但我不知道该怎么做。 我只知道目标到源映射是如何工作的。 但是我不能使用它,因为我不能简单地反转过程,这会创建不规则的像素网格,因为每个像素都是单独计算的。

据推测,转换源图像像素会在目标中产生密集(扭曲)的网格。 这应该允许您在网格单元中使用双线性插值方案。

在目标中绘制规则间隔的水平线并找到与网格的交点。 您可以沿交叉的边缘插入像素。 现在沿着水平线你有不规则间隔的点,你可以在它们之间插入以获得规则间隔的像素。

在此处输入图片说明

为了加快相交过程,您可以使用扫描线方法(在 Y 上对网格边缘进行排序)。

我尝试了不同的解决方案,看来 scipy.interpolate.griddata ( https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html ) 是运行时的最佳解决方案

find-nearest-value-in-numpy-array下的Near_rgrid在一页代码中将任何点云捕捉到常规网格上的最近邻居。

scipy RegularGridInterpolator也做线性、双线性......插值。

Scipy griddata 使用KDTree 在我的旧 imac 上为 2500 万个点构建一棵树需要大约 30 秒,然后查询需要微秒或毫秒。

你选择的方法当然取决于你有多少分散的数据点和多少查询点(规则网格)——你的图像有多大?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM