一、你能自己走出迷宫吗?
如下图所示,可以看到是一张较为复杂的迷宫图,相信也有人尝试过自己一点一点的找出口,但我们肉眼来解谜恐怕眼睛有点小难受,特别是走了半天发现这迷宫无解,代入一下已经生气了,所以我们何必不直接开挂,使用opencv来代替我们寻找最优解。
恩,不错,那就整!
注:图像自己截图获取即可。
二、使用OpenCV找出出口。
1、对图像进行二值化处理。
此时我们的图像就反了过来,我们只需要找到一条从入口连续到出口的黑线即可。
import cv2
import numpy as np
img = cv2.imread('../photos/1.png')
# cv2.imshow('maze',img)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
#对图像进行二值化
# Binary conversion
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#反转tholdolding将给我们一个二进制的图像与白色的墙壁和黑色的背景。
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV)
cv2.imshow('THRESH_BINARY_INV',thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()
2、 对二值化后的图像进行轮廓检测并标注
可以看到大致路线已经出现。
#对二值化处理的图像进行轮廓检测并标注
# Contours
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_NONE)
print('l