앞선 강좌에서는 OTSU 기법을 이용한 이진화 방법에 대해 알아보았다.
오늘은 이진화된 영상에서 각각의 컴포넌트들을 잘라낼 수 있는 레이블링에 대해 알아본다.
1. 클래스 추가
2. 픽셀 방문 기록을 남길 구조체 및 각종 변수 선언
3. 실제 레이블링 알고리즘의 구현
- 파라미터를 설정하고, DoLabeling() 함수를 실행함으로써 실제 레이블링 과정이 진행된다.
4. 알고리즘의 사용
- OnTimer 내부의 코드에 레이블링 관련 부분을 추가한다.
5. 테스트 결과
다음장에서는 각 레이블의 크기 정보를 토대로 잡영을 걸러내고 원하는 레이블을 찾아가는 과정을 소개한다.
오늘은 이진화된 영상에서 각각의 컴포넌트들을 잘라낼 수 있는 레이블링에 대해 알아본다.
레이블링(Labeling)이란?
인접한 화소에 모두 같은 번호(Label)를 붙이고 연결되지 않은 다른 성분에는 다른 번호를 붙이는 일
인접한 화소에 모두 같은 번호(Label)를 붙이고 연결되지 않은 다른 성분에는 다른 번호를 붙이는 일
1. 클래스 추가
2. 픽셀 방문 기록을 남길 구조체 및 각종 변수 선언
레이블링시 영상의 전체 픽셀을 검사하며 돌아다니게 되는데,
이 때, 해당 픽셀의 이전 방문 여부와 되돌아갈 곳의 위치를 저장하는 구조체를 선언한다.
또한 레이블링시 레이블이 저장될 이미지와 각 레이블의 정보가 담길 각각의 변수들을 선언한다.
이 때, 해당 픽셀의 이전 방문 여부와 되돌아갈 곳의 위치를 저장하는 구조체를 선언한다.
또한 레이블링시 레이블이 저장될 이미지와 각 레이블의 정보가 담길 각각의 변수들을 선언한다.
3. 실제 레이블링 알고리즘의 구현
- 파라미터를 설정하고, DoLabeling() 함수를 실행함으로써 실제 레이블링 과정이 진행된다.
4. 알고리즘의 사용
- OnTimer 내부의 코드에 레이블링 관련 부분을 추가한다.
작성한 레이블링 알고리즘은 흰색(255의 값을 갖는 픽셀)을 Foreground로 판단하기 때문에,
앞서 이진화된 영상을 반전시킨다.
미리 작성해둔 레이블링 클래스를 이용 레이블링을 수행한 뒤,
각 레이블의 정보를 담고 있는 m_recBlobs 변수로 부터 각 레이블의 정보를 가져와
화면출력을 위해 만들어둔 이미지에 각각의 영역을 빨간색으로 표시한다.
앞서 이진화된 영상을 반전시킨다.
미리 작성해둔 레이블링 클래스를 이용 레이블링을 수행한 뒤,
각 레이블의 정보를 담고 있는 m_recBlobs 변수로 부터 각 레이블의 정보를 가져와
화면출력을 위해 만들어둔 이미지에 각각의 영역을 빨간색으로 표시한다.
5. 테스트 결과
다음장에서는 각 레이블의 크기 정보를 토대로 잡영을 걸러내고 원하는 레이블을 찾아가는 과정을 소개한다.
이전 강좌 목록
강좌 01. MFC로 OpenCV 시작하기
강좌 02. 다이얼로그(Static Control)에 이미지 출력하기
강좌 03. 다이얼로그에 캠 영상 입력받기
강좌 04. 영상 이진화 하기
강좌 01. MFC로 OpenCV 시작하기
강좌 02. 다이얼로그(Static Control)에 이미지 출력하기
강좌 03. 다이얼로그에 캠 영상 입력받기
강좌 04. 영상 이진화 하기
'[ 프로그래밍 ] > 강좌' 카테고리의 다른 글
OpenCV 강좌 07. 마커 추출 (2) - 마커 검증 (5) | 2009.07.07 |
---|---|
OpenCV 강좌 06. 마커 추출 (1) - 잡영 제거 (8) | 2009.07.02 |
OpenCV 강좌 04. 영상 이진화 하기 (11) | 2009.06.30 |
OpenCV 강좌 03. 다이얼로그에 캠 영상 입력받기 (25) | 2009.06.25 |
OpenCV 강좌 02. 다이얼로그(Static Control)에 이미지 출력하기 (53) | 2009.06.25 |