我一直在使用Image Analyst http://www.mathworks.com/matlabcentral/fileexchange/27175-mazesolution的maze_solution函数一段时间没有问题 . 有一些限制:迷宫必须是完美的,没有圆形路径 .
话虽这么说,我测试时通常效果很好,让我给你提供两个输出示例:
maze-1 - > solution-1(显然效果很好)
maze-2 - > solution-2(不太好)
现在让我提出一些关于我的迷宫不明显的规则:
-
没有圆形路径(有一些被困在墙上,但没有人会遇到迷宫解算器) .
-
它们始终位于左上角,然后每次都有相同坐标的四个出口 .
-
总有一个出口 .
所以,我想做的是,让我们考虑第一个截图 . 它运行良好并“找到”退出,有没有办法让mat实验室弹出一个消息框(例如使用msgbox())并说出类似“嘿用户,我找到了解决方案!它是A!”?我已经考虑了很长一段时间了,但是没有办法做到这一点 . 我想到的解决方案之一是伪代码:
if CertainCoordinate = red pixel
return A
虽然CertainCoordinate可能是A,B,C和D的不变的坐标(x和y)(然后我会使用4'ifs'),但我真的不知道如何实现它 . 任何想法或某些事情都指向正确的方向?
所以,总结一下:我有一个算法,现在生成一个红色的退出路径(如果你有任何建议我可以使用更好的算法)但我的目标是让matlab告诉我他找到了什么,而不是显示我在一个图像 . 因此,例如,在第一张图片中,我希望它打开一个MessageBox并说“嘿用户!我找到了退出,它是D!”,而不是向我显示带有红色路径的图像 . 问题是,我不知道如何教MatLab'哪里是D'并让他认识到他找到'D' . 那么,对于如何做到这一点有什么建议吗?
提前致谢!
1 回答
假设您有一个名为
maze
的图像,可能是出口的x
坐标和出口的相应y
坐标 . 你也可以检查迷宫解决程序使用的颜色,让我们说这是Red
.现在解决方案非常简单 . 首先运行迷宫求解器,然后检查以下内容
这为您提供了x和y坐标 . (如果没有找到解决方案,则它们是空的) . 从这里开始,将它们连接到您指定的其中一个字母应该不会太难 .