이진화개념
개념
- 영상의 픽셀 값을 0 또는 255로 만드는 연산
- 배경과 객체, 관심영역(ROI)와 비관심 영역으로 나누는 작업
- 방법
- 임계값 연산을 이용
- 예시 이미지
threshold
THRESH_BINARY
THRESH_BINARY_INV
THRESH_OTSU
- 입력 영상이 배경과 객체 두 개로 구성되어 있다고 가정하고, 임의의 임계값 에 의해 나눠지는 두 픽셀 분포 그룹의 분산이 최소가 되는 선택
THRESH_BINARY | THRESH_OTSU
와 같이 활용



지역 이진화
- 전역 이진화가 불균일한 조명 환경에 취약하다는 문제점
- 픽셀 또는 영역마다 다른 임계값을 사용하여 이진화를 수행하는 기법



adaptiveThreshold
- OpenCV 적응형 이진화 함수



모폴로지 연산(morphology)
- 영상을 행태학적인 측면에서 다루는 기법
구조 요소
모폴로지 연산의 결과를 결정하는 커널, 마스크getStructuringElement
- 예시 이미지

침식 연산
- 구조 요소가 객체 영역 내부에 완전히 포함될 경우 고정적 픽셀을 255로 설정
- 흰색의 객체 영역이 점점 줄어들고, 객체 내부의 홀(hole)이 커짐
erode

팽창 연산
- 구조 요소와 객체 영역이 한 픽셀이라도 만날 경우 고정점 픽셀을 255로 설정
- 흰색의 객체 영역이 점점 불어나고, 객체 내부의 홀(hole)이 채워짐
dilate

열기 연산
- 침식 → 팽창
- 작은 객체는 사라지고, 얇은 연결선이 끊어짐



닫기 연산
- 팽창 → 닫기
- 작은 홀은 사라지고, 얇은 연결선이 두꺼워짐
morphologyEx
MORPH_OPEN
MORPH_CLOSE


객체 단위 분석
- 흰색의 객체를 분할하여 객체 위치 및 크기 정보, ROI 추출, 모양 분석 등 특징을 분석
레이블링
- 동일 객체에 속한 모든 픽셀에 고유한 번호를 매기는 작업
입력
은 이진 영상,출력
은 2차원 정수 행렬 형태의 레이블맵
- 픽셀의 연결 관계
- 4-이웃 연결 관계
- 8-이웃 연결 관계
- 메소드
connectedComponents
connectedComponentsWithStats


- 예시


외곽선 검출
- 객체의 외곽선 좌표를 모두 추출하는 작업
- 메소드
findContours
외곽선 검출 함수RETR_LIST
RETR_CCOMP
RETR_TREE
- hierarchy 생략
drawContours
외곽선 그리기 함수







외곽선 함수
archLength
외곽선 길이 구하기
contourArea
면적 구하기
boundingRect
바운딩 박스 구하기
minEnclosingCircle
바운딩 서클 구하기
approxPolyDP
외곽선 근사화
isContourConvex
컨벡스 검사
