问题描述
我很好奇如何在简单的等轴测图像中推断3D坐标。

我能想到的唯一方法是进行深度优先搜索以找到每个面的顶点,然后使用复杂的分支逻辑从所有可能部分隐藏面的可能性中找出顶点位置。有什么更好的方法来解决这个问题?
这只是出于爱好,因此我可以进一步简化问题(例如,要求场景仅由单位体素组成,或者仅将解决方案作为单个体素中点的坐标给出,而不用给出坐标和它们的面部索引按逆时针顺序排列。
我假定输入将作为我在图片中使用的五种不同颜色的矩阵给出。作为输出,我希望有一个3D坐标列表,并可能会附带这些面孔的坐标索引列表。
解决方法
我假设您能够检测所有边缘及其方向(在六个位置中)。同样,如果它们完整或被遮挡。并检测顶点,以便获得2D图形。
将坐标(0,0,0)分配给某个点,例如最低顶点。然后,从已知点开始沿着每个完整的边缘,您将通过考虑边缘方向(可能还有长度)来获得端点的坐标,并知道要递增/递减的坐标。
最后,您将获得完整边的端点的所有坐标,告诉完整的面孔,并能够辨别被遮挡的面孔。