『OpenCV』使用OpenCV和Python来解决迷宫问题( 二 )

在上述代码中 , 我们使用变量h , w迭代edgearray 。 对于每个边缘 , 我们使用这些值检查是否可通过 。
我们检查连接到路径或初始块的每个块 。 路径采用一次后 , 通过减去相应的值来删除该路径 。
对于回溯 , 我们用变量' rec ' 。 对于任何具有多个开放路径的块 , 它将成为一个节点 , 因为它可能会导致多个路径 。 如果前面的路径是封闭的 , 比如在其他块之后 , 则会再次访问初始节点 。 由于所有初始路径都已被删除 , 因此将访问新路径并检查路径的完成情况 。
最短路径被计算为所有点的数组 。
『OpenCV』使用OpenCV和Python来解决迷宫问题
本文插图
要在图像上创建路径 , 我们使用方法pathHighlight 。
def pathHighlight(img, ip, fp, path): size = CELL_SIZE for coordinate in path:h = CELL_SIZE*(coordinate[0]+1)w = CELL_SIZE*(coordinate[1]+1)h0= CELL_SIZE*coordinate[0]w0= CELL_SIZE*coordinate[1]img[h0:h,w0:w] = img[h0:h,w0:w]-50 return img 【『OpenCV』使用OpenCV和Python来解决迷宫问题】
『OpenCV』使用OpenCV和Python来解决迷宫问题
本文插图