【问题标题】:Draw zones instead of of points on an radar image在雷达图像上绘制区域而不是点
【发布时间】:2014-06-26 09:58:10
【问题描述】:

我真的不知道如何更好地解释它,所以请看以下图片:

This is what I create for the moment

This is what I whish to create instead

我目前正在使用带有 Qt 4.8 的 C++。

你知道可以让我达到目标的方法吗?使用库或转换矩阵?还是别的什么?

我是图像处理的新手,所以每条建议对我来说都很宝贵。

谢谢

编辑:

如果有帮助的话,我会从纬度/经度度量中绘制每个彩色像素。

【问题讨论】:

  • 看来你想填充定义的多边形区域。您必须先概述它们,这可能有点复杂。或许你可以看看这个lecture file

标签: c++ image qt transformation


【解决方案1】:

使用所谓的形态算子。在这种情况下,您将需要 'open' 运算符。 OpenCV 提供了一个很好的实现(以及这些的文档),可以在 here 找到。

【讨论】:

  • 这个解决方案对我来说似乎很有趣!马上去试试!
【解决方案2】:

我能想到的只是画圆圈而不是点。使用分布的凹元素创建三角形网格很棘手。

编辑:刚刚查看了图像的全尺寸版本,想知道数据集是否是径向存储的?您可以扫描相邻的径向线并尝试匹配沿每条线的值变化以形成一组四边形。不过需要考虑大量的边缘条件。

EDIT2:或者,形成一组均匀分布的四边形并插入顶点颜色。

【讨论】:

  • 这是我想到的解决方案,但是这样做我会在图像中心附近失去精度:/ 但是如果没有其他解决方案,我会这样做
  • 实际上,数据一开始是径向存储的,但是会立即转换成经纬度。
  • @Karalix:保持径向直到形成网格。
  • 我没听懂你在 EDIT2 中说的所有话 ^^' 你能再给我解释一下吗?
  • @Karalix:沿每条径向线的每n个像素,根据最近的样本计算一个颜色值,并使用结果形成一个四边形的角。
【解决方案3】:

你可以从增加点的大小开始,

您可以使用扫描线算法创建三角形网格:

按纬度对点进行排序

保持一个按长排序的子集

当您添加一个点与 4 个相邻点进行比较并将三角形添加到“要绘制”集时(根据需要删除距离当前纬度太远的点)

使用 opengl,您可以使用索引缓冲区来保存应该绘制的点

【讨论】: