我一直在使用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'。那么,对于如何做到这一点有什么建议吗?
提前致谢!
答案 0 :(得分:0)
假设您有一个名为maze
的图像,其中包含退出的可能x
坐标和退出的相应y
坐标。你也可以检查迷宫解决方案使用的颜色,让我们说这是Red
。
现在解决方案非常简单。首先运行迷宫求解器,然后检查以下
isRed = maze(x,y) == Red;
exitxCoordinates = x(isRed)
exityCoordinates = y(isRed)
这为您提供了x和y坐标。 (如果没有找到解决方案,则它们是空的)。 从这里开始,将它们连接到您指定的其中一个字母应该不会太难。