首页 > 解决方案 > 我将如何从 2D 游戏图像创建布尔矩阵?

问题描述

这里展示的是 2D 游戏的屏幕截图:

(对不起,没有发布内嵌图片的声誉)

您可以在草地、沥青、人行道等上行走,但不能走进建筑物/墙壁/任何结构。这是一个小 gif来演示这一点

我想要什么:我的理想目标是创建一个布尔矩阵,其中 0 表示您不能遍历该像素,而 1 表示可以。所以,在这个例子中,它看起来像这样(我忘了添加树)

该数组中的“红色区域”为 0,其他图块为 1

我尝试过的和我的想法:

我所有的想法都指向一件事,我不知道它是否正确:创建一个通用的“可接受”颜色列表,如果像素在可接受的颜色列表中,我们可以将其设置为 1。这当然有它的缺点:其中一个是不可穿越的区域很容易具有可穿越区域的颜色(例如,如果我们使用绿色作为草的颜色 - 可能是沼泽或灌木),另一个缺点是比较每个像素的计算时间。

我已经考虑过阈值,但如果我得到正确的,它只用于白色和黑色的比较。我还研究了使用 PIL 进行图像量化,但量化后的图像对我来说并没有太大变化。量化后我会做什么?

如果我们深入研究这个游戏,这里的图块被认为是 32x32 像素区域,它是使用图块集(类似于画布)绘制的: https : //i.imgur.com/j9CNQdi.png并且有一个“列表”不可穿越的“瓷砖(阻塞),也许它有可能使用它?

无论如何,我迷失在寻找什么。我一直在研究,但没有发现类似的东西。我会很感激任何关于在哪里看的建议,谢谢。

标签: pythonopencvimage-processingpython-imaging-library

解决方案


推荐阅读