如何从OpenCV中的分散点构建网格?

时间:2011-07-27 10:02:58

标签: c++ datagrid random opencv points

我需要的是在OpenCV中构建一个强度网格(图像),从中我可以提取一些轮廓。我已经用一个完整的数据网格解决了这个问题,但我的问题是我只能在地图上找到一些分散的点,我将不得不自己构建这个网格。 从我从不同来源读到的方式,走的是在分散的点上使用Delaunay三角剖分。我已经在OpenCV中找到了构建这些三角形的一些函数,但我找不到如何使用这些数据来构建我需要的数据网格的方法。 如果在OpenCV中还有其他更多帮助功能或使用我当前进度的方式,如果您能指出我正确的方向,我将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:2)

因此,您可以使用delaunay三角剖分为您提供插值点以填充其间的空图像点。这基本上是当您使用delaunay渲染稀疏高度字段时发生的情况。读取重心坐标可能会有所帮助(因为这些坐标是用于执行插值的坐标)。我刚刚检查过,维基百科实际上有一个关于非结构化网格插值的部分,它基本上回答了如何将三角测量应用到插值网格。

http://en.wikipedia.org/wiki/Barycentric_coordinate_system_(mathematics)#Interpolation_on_a_triangular_unstructured_grid

不幸的是,我对OpenCV不够熟悉,告诉你那里是否有任何捷径,但希望这会让你找到正确的搜索词来达到你期望的最终状态。在一个疯狂的猜测,因为GPU最初是为了完成这个精确的操作而做的,所以应该可以在一个上快速发臭。

答案 1 :(得分:0)

超过德劳内,我认为你需要一个Voronoi图:

enter image description here

您可以从网格的每个点开始使用OpenCV扩展生成它,并为每个强度使用不同的颜色(或扩展步骤)。