C# OpenCV 강좌 : 제 11강 - 이진화
이진화
영상이나 이미지의 어느 지점을 기준으로 픽셀을 분류해 제외합니다.
특정 값을 기준으로 값이 높거나 낮은 픽셀을 검은색
또는 흰색
의 값으로 변경합니다.
기준값에 따라 이분법적으로 구분해 픽셀을 참
또는 거짓
으로 나누는 연산입니다.
메인 코드
세부 코드
new Mat
을 사용해 이미지를 src
에 할당합니다.
gray
는 src
를 그레이스케일로 변화시켜, 단일 채널로 변경하기 위한 공간입니다.
binary
는 이진화
된 이미지가 저장될 공간입니다.
- Tip : 이진화는 단일 채널에 대해서만 적용됩니다.
src
에 적용할 경우, 각 채널별로 이진화가 적용됩니다.
색상 공간 변환 함수(Cv2.CvtColor)
를 활용해 색상 이미지에서 흑백 이미지로 변환합니다.
이진화를 적용할 때 가장 많이 선행으로 적용되는 변환법입니다.
이진화 함수(Cv2.Threshold)
를 활용해 이미지를 이진화합니다.
Cv2.Threshold(원본 이미지, 결과 이미지, 임곗값, 최댓값, 임곗값 형식)
로 이진화를 적용합니다.
임곗값 형식에 따라 이진화 방식을 설정합니다.
임곗값 보다 낮은 픽셀값은 0이나 원본 픽셀값
으로 변경하며, 임곗값보다 높은 픽셀값은 최댓값으로 변경합니다.
임곗값 형식 종류
속성 | 의미 |
---|---|
ThresholdTypes.Binary | 임곗값을 초과할 경우 최댓값, 아닐 경우 0 |
ThresholdTypes.BinaryInv | 임곗값을 초과할 경우 0, 아닐 경우 최댓값 |
ThresholdTypes.Trunc | 임곗값을 초과할 경우 임곗값, 아닐 경우 변형 없음 |
ThresholdTypes.Tozero | 임곗값을 초과할 경우 변형 없음, 아닐 경우 0 |
ThresholdTypes.TozeroInv | 임곗값을 초과할 경우 0, 아닐 경우 변형 없음 |
ThresholdTypes.Mask | 검은색 이미지로 변경(마스크용) |
ThresholdTypes.Otsu | 오츠 알고리즘 적용(단일 채널 이미지에만 적용 가능) |
ThresholdTypes.Triangle | 삼각형(Triangle) 알고리즘 적용(단일 채널 이미지에만 적용 가능) |
댓글 남기기