2013-03-02 5 views
0

이미지 분석가 http://www.mathworks.com/matlabcentral/fileexchange/27175-mazesolution의 maze_solution 기능을 문제없이 사용하고 있습니다. 몇 가지 한계가 있습니다. 미로는 완벽해야하며 원형 경로가 없어야합니다. (>solution-2 ->solution-1 (분명히 잘 작동)MatLab 미로 해결

maze-2 -이

maze-1 : 말했다되고 그건

, 그것은 일반적으로 내가 그것을 테스트 할 때, 내가 출력의 두 가지 예를 제공 할 수 있도록 아주 잘 작동 아니 너무 잘)

이제

은 내 미로에 대해 명확하지 않은 몇 가지 규칙을 만들어 보자 :

  1. T 여기에 순환 경로가 없습니다 (벽에 갇혀 있지만 미로 해결자가 실행되지 않는 경로가 있습니다).
  2. 항상 맨 위 왼쪽부터 시작하고 매번 같은 좌표에 4 개의 이탈이 있습니다.
  3. 항상 한 개의 이탈이 있습니다.

그럼 내가하고 싶은 것은 첫 번째 스크린 샷을 고려해 보겠습니다. 그것은 잘 작동하고 출구를 찾는다. 예를 들어 msgbox()를 사용하여 매트 랩이 메시지 상자를 팝업하고 "이봐 요 사용자, 해결책을 찾았습니다!"라고 말하면 어떤 방법이 있겠습니까? 나는 이미 이것을 오랫동안 생각했지만, 이것을 할 방법이 없다. 생각 된 해결책 중 하나에 대한 의사 코드에서였다 CertainCoordinate는 A, B, C 및 D의 불변 좌표 (x 및 y)이 될 수있는 반면 (그럼 4 '의 IFS'을 사용할 것이다)

if CertainCoordinate = red pixel 
    return A 

, 하지만 실제로 구현하는 방법을 모르겠습니다. 어떤 아이디어 나 ... 올바른 방향으로 나를 가리키고있는 뭔가?

그래서, 요약 : 지금은 출구에 빨간색 경로를 생성하는 알고리즘이 있습니다. (제안이 있다면 더 좋은 알고리즘을 사용할 수 있습니다.)하지만 목표는 matlab이 발견 한 것을 말해주는 것입니다. 대신 나를 이미지로 보여주는 것. 그래서 예를 들어, 첫 번째 이미지에서 MessageBox를 열고 "이봐, 사용자! 내가 출구를 발견 했어, D 야!"라고 말하면서, 그 위에 빨간색 경로가있는 이미지를 보여주는 대신에. 문제는 MatLab에 'D가 어디에 있는지'를 가르치는 방법과 'D'를 찾았다는 것을 인식하게 만드는 방법을 모른다는 것입니다. 그래서, 어떻게하는 지에 대한 제안이 있습니까?

미리 감사드립니다.

+0

그래프 채색 아이디어를 사용하여 '연결된 구성 요소'알고리즘의 변형입니다. 표준 알고리즘 교과서, 아마 Steven Skiena 또는 CLRS를 참조해야합니다. – Arcturus

답변

0

maze 이미지의 출구가 x이고 가능 좌표가 y 인 이미지가 있다고 가정 해 보겠습니다. 또한 미로 해결 프로그램에서 사용하는 색상을 확인할 수 있습니다.이 말은 Red입니다.

이제 해결책은 간단합니다. 먼저 미로 해석기를 실행하고 다음을 확인하십시오.

isRed = maze(x,y) == Red; 
exitxCoordinates = x(isRed) 
exityCoordinates = y(isRed) 

그러면 x 및 y 좌표가 표시됩니다. (솔루션이 없으면 빈 상태입니다.) 여기에서 지정한 문자 중 하나에 연결하기가 너무 어려워서는 안됩니다.