영상신호처리: HW7 Image Labeling
- 최초 등록일
- 2015.11.09
- 최종 저작일
- 2015.04
- 9페이지/ 한컴오피스
- 가격 1,500원
목차
1) Image Labeling 관련이론
2) 메인 ‘ Labeling ’ 함수
3) Image Labeling
4) Make_Noise_Removed_Image 함수
5) Display_Labeled_Images
6) 출력 영상
7) Discussion
본문내용
1) Image Labeling 관련이론
<그 림>
먼저 첫번째 스캔을 진행하다가
1. 배경이 아닌 픽셀을 만나면 주위의 연결 픽셀 중 바로 위 픽셀과 왼쪽 픽셀을 검사합니다. 만약 라벨이 되어 있는 픽셀이 없다면 새로이 라벨을 부여한다. 등가 표에 새로이 번호를 추가한다.
2. 이어서 계속 스캔하다가 역시 객체 픽셀을 만났는데 이번에는 위 픽셀 혹은 왼쪽 픽셀에 라벨이 부여되어 있는 경우를 생각해보자.
만약 위 픽셀이나 왼쪽 픽셀이 동시에 라벨이 부여되어 있지 않고 한군데만 라벨이 부여되어 있다면 이번에 만난 픽셀에 그 라벨을 부여합니다. 등가 표는 조정할 필요는 없습니다.
그러나 top, left 모두 라벨 값이 존재한다면 아래의 과정으로 나누어 라벨 값을 부여한다.
a. 둘의 라벨이 같은 번호이면 이번에 만난 픽셀에도 같은 번호를 부여한다.
b. 주위 픽셀의 라벨이 다른 번호이면 가장 낮은 라벨을 이번에 만난 픽셀에 부여하고 a.b. 과정을 거친 후, 등가 표를 조정한다.
3. 모든 픽셀을 검사할 때까지 반복한다. 그 결과 객체픽셀에 라벨이 부여되어 있고 등가 표 또한 작성이 되었을 것이다. 두 번째 스캔을 할 때는 첫 번째 스캔의 결과로부터 생성된 등가 표를 조정하고 이에 맟춰 객체픽셀에 라벨을 조정해준다.
<그 림>
2) 메인 ‘ Labeling ’ 함수
<그 림>
설명:
이 소스의 흐름은 다음과 같다. 먼저 영상을 저장할 배열 img1을 생성하고 이 영상의 Label영상을 저장할 공간을 int형의 2차원 배열로 생성한다. 그리고 각 Label마다 몇 개의 화소가 존재하는지를 저장할 Area[]라는 배열도 동적으로 생성한다. 그리고 현재 Label이 몇 번까지 붙어있는지 알 수 있는 변수도 있다( Num ).
Image_Labeling()함수를 통해 원영상을 가지고 Label영상을 만든다. 이때 각 레이블의 화소 값과, 현재 최종 레이블 값이 같이 따라 나온다.
Make_Noise_Removed_Image()함수를 통해 레이블이 가진 화소수가 m_LabelNum만 넘으면 Label영상에 포함시킨다. 이때 Label영상은 img1에 저장된다.
참고 자료
영상처리를 위한 C++ 프로그래밍 / 이대호, 박영태 저 / 인터비젼 /
Digital Image Processing / 2nd Ed / R.C. Gonzalez and R.E. Woods
수업자료 / Digital Image Processing / 컴퓨터비젼 연구실 /
다음 블로그 / http://m.blog.daum.net/_blog/_m/articleView.do?blogid=0awK1&articleno=198#