비전 시스템 및 실습( 세선화 를 이용한 미로찾기 알고리즘)
- 최초 등록일
- 2014.07.17
- 최종 저작일
- 2014.05
- 9페이지/ 한컴오피스
- 가격 5,000원
목차
1. 알고리즘 소개
2. 플로우 차트
3. 결과 영상
4. 고찰
5. 소스코드
본문내용
1. 알고리즘 소개
옆에 그림은 미로를 세선화한 그림이다.
시작위치에서 출발하여 오른족을 우선으로 하여 색을 채워나간다.
->
끝부분에서 상하좌우 비교가 끝나면 대각선 4방향을 검사한다.
대각선 4방향 검사 후 더 이상 진행할 곳이 없다면 그 지점이 도착점인지 검사를 한다.
도착점인 경우 빨강색 선이 아닌 부분을 제거하고 종료 도착점이 아닌 경우 되돌아가 빨강색부분을 제거한다.
그리고 교차점에서 다시 검사를 하여 진행해 나간다.
알고리즘>
입력영상을 세선화를 하고 세선화된 영상을 팽창+침식연산을 수행한다.
① 수행된 영상을 시작위치에서 시작
② 상하좌우 검사(흰색을 회색으로 변환)
③ 상하좌우 없을시 대각선 검사
④ 대각선 검사 없을시 도착점 비교
⑤ 도착점일 경우 -> 종료
⑥ 도착점이 아닐 경우 흰색부분이 나올 때까지 회색제거
⑦ 흰색부분이 나올 경우 다시 ②번부터 수행
위의 방법의 알고리즘이 무엇인지 알아보기 위해 검색을 많이 해보았지만 찾을 수 가 없었다. 다른 여러가지 미로를 찾는 방법을 인터넷에서 찾아본 결과 BFS, DFS, Heuristic, A*, Dijkstra, Jump point 등을 찾았지만 나와 같은 방식의 알고리즘은 찾을 수 가 없었다.
<중 략>
void CSDHtermDoc::Find1(void)
{
int startx=80, starty=230;
int i,j,a,x,y;
int top=0;
for(i=0; i<1000; i++){
if(m_OpenImg[starty][startx-1] == 255){
break;
}
}
m_ResultImg[starty][startx] = 128;
for(y=0; y<750; y++){
for(x=0; x<600; x++){
m_ResultImg[y][x]=m_OpenImg[y][x];
m_ImageBuf1[y][x]=m_ResultImg[y][x];
}
}
참고 자료
없음