在平面图图像上显示路线

时间:2015-03-31 19:00:21

标签: android image matlab navigation

我有一个平面图,墙壁是黑色的,门是橙色的,目标是红色的。我想要的是制作一个应用程序,在给定图像上的特定点的情况下,计算并显示到目标的路径。我已经有了一个路由方法,但它在matlab中,每个位置和对象都在代码中定义,并且它不使用图像。我想知道的是如何扫描图像以通过颜色识别墙壁,门和目标,以便应用路由方法,然后在地图图像上显示路线(我想我应该使用drawable for这一点)。

2 个答案:

答案 0 :(得分:3)

这是从图像实现路径寻找算法的一些步骤。

  • 上传您的图片
  • 应用颜色检测HSV(在现实生活中最容易控制) 用这种格式的光变化)算法来获取对象 分开。
  • 制作一个新的二进制矩阵,其中1表示你的楼层,0表示你的楼层 障碍。
  • 将二进制矩阵应用于占用网格算法(此减少 你的矩阵,因为在你需要的寻路算法中 处理)。
  • 现在是你的路径寻找算法。在这两种情况下,我建议使用diijistrak或A star算法 你需要构建一个邻接矩阵。

图论可以帮助你更好地理解。祝你好运!

您可以处理IDE以进行快速原型设计并将所有处理IDE核心迁移到eclipse,您需要在您的eclipse项目中实现PApplet类,并且可以将您的应用程序编译为Android。

答案 1 :(得分:1)

我会使用一些占用网格/地图,其中每个网格单元格=一个像素(或者可能是像2x2 3x3等像素的小集合)并且只对图像进行k-means聚类。 k

有几个选择

<强> K = 2

你有墙是一组(黑线)

其他一切都被认为是开放空间(这假设门可以打开)。

您需要知道红点的位置,但不需要在地图中显示。它只是地图中的另一个开放空间。程序内部知道的是端点。

<强> K = 4

一组黑色=墙壁(占用),橙色=门(可能或可能看起来不像被占用的细胞,取决于它们是否可以打开),红色=目标(未被占用),白色=开放空间(未被占用) )。

在这两种情况下,您都可以为群集生成标签并在地图中使用这些标签。我不确定你的路径寻找算法是什么,但通常目标是最小化一些成本函数,因此你为墙壁分配了极高的成本(因此它们永远不会被交叉),可能会分配一个中等成本门(如果不能打开)。只是一些想法,祝你好运