라벨링(Labeling)
- Library/opencv
- 2008. 7. 3.
<라벨링>
라벨링이 필요한 이유
물체분할
라벨링 순서 / 라벨링 단계
라벨링이란?
라벨링 방법(Glassfire, 반복문)
라벨링이 필요한 이유!
가정용 로봇 : 주변 환경을 인식 하기위함
물체분할
분할은 배경(background)에서 물체(object)를 추출하는 것을 뜻한다.
음성인식에서 특별한 소리만을 인식하는 것도 분할에 해당한다.
영상에서 관심 있는 영역(semantic region)은 물체가 되고 나머지는 배경으로 취급된다.
차안에서 사람의 목소리는 물체이고 차 소리나 바람소리는 배경 또는 잡음(noise)으로 된다.
라벨링 순서 / 단계
라벨링 순서
입력영상 -> 이치화 -> 이치화 영상->연결분석->라벨링영상->특징추출->영상특징들
라벨링단계
이치화된 영상을 탐색하려다 밝기가 255인 화소값을 만나면 라벨링을 수행하고 이 라벨링 점을 4-근방 또는 8근방의 중심으로 이동 후 다시 인접화소의 미방문 255화소값을 라벨링하는 방식으로 반복한다.
라벨링이란?
“인접하여 연결”되어 있는 모든 화소에 동일한 번호(라벨)를 붙이고 다른 연결 성분에는 또 다른 번호를 붙이는 작업
라벨링된 영상에서 임의의 번호를 가진 영역만 추출하면 영역 분리가 이루어지게 되며 특별한 영역에 대해서만 크기, 중심좌표, 원주길이 등을 추출해 내는 것이 가능하게 된다.
라벨링방법
Glassfire 알고리즘
마른잔디(glass)에서 불(fire)이 번져나가는 모양과 비슷하게 화소를 라벨링하기 때문에 붙여진 이름이다. 자기호출을 이용하여 모든 인접요소가 라벨링될 때까지 현재 관심화소의 주변 인접화소를 차례로 검사하면서 라벨링하는 방법
문제점 : Glassfire 방법은 자기호출을 사용하기 때문에 glass 함수가 자기 자신을 반복해서 호출한다. 과도한 자기호출은 시스템 스택을 넘치게 하기 때문에 너무 큰 크기의 물체영역을 라벨링하기에는 적당하지 않다. 또한 자기 호출은 프로그램이 내부적으로 처리하는 많은 명령들로 인해 속도가 저하되는 단점이 있다.
'Library > opencv' 카테고리의 다른 글
OpenCV Camera 2개 연결 (2) | 2008.11.25 |
---|---|
cvcam_callback() 안에서 새로운창에 영상띄우기 (0) | 2008.10.11 |
cvCreateImage (0) | 2008.10.10 |
OpenCV 에서 디버그 할때 cvcamInit() 꺼지는 현상 (2) | 2008.08.01 |
기하학 변환이란? (0) | 2008.07.02 |