비전 시스템 및 실습( 세선화 를 이용한 미로찾기 알고리즘)
- 최초 등록일
- 2014.07.17
- 최종 저작일
- 2014.05
- 9페이지/
한컴오피스
- 가격 5,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
목차
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];
}
}
참고 자료
없음