코드
결과
경계값을 임의로 정해서 픽셀들을 두 부류로 나누고 두 부류의 명암 분포를 반복해서 구한 다음 두 부류의 명암 분포를 가장 균일하게 하는 경 값을 선택한다. 다시말해, 특정 threshold를 T라 하면, T를 기준으로 이진 분류된 픽셀의 비율의 차가 가장 작은 optimal T를 구하는 것이다.
오츠 알고리즘은 모든 threshold에 대해 계산해야 하기 때문에 속도가 느리다는 단점이 있다. 또한 노이즈가 많은 영상에는 오츠의 알고리즘을 적용해도 좋은 결과를 얻지 못하는 경우가 있다.
다음을 가정할 때 가장 우수한 결과를 보인다.
- 원본 이미지가 배경과 객체 두개로 구성되어 있을 때
- 원본 이미지의 히스토그램 분포가 두개의 봉우리(Bimodal)형태를 가질 때
- 두 봉우리 사이의 골이 깊고 날카로울 때
https://bkshin.tistory.com/entry/OpenCV-8-%EC%8A%A4%EB%A0%88%EC%8B%9C%ED%99%80%EB%94%A9Thresholding
OpenCV - 8. 스레시홀딩(Thresholding), 오츠의 알고리즘(Otsu's Method)
이번 포스팅에서는 바이너리 이미지를 만드는 대표적인 방법인 스레시홀딩에 대해 알아보겠습니다. 이번 포스팅 역시 '파이썬으로 만드는 OpenCV 프로젝트(이세우 저)'를 정리한 것임을 밝힙니다
bkshin.tistory.com
https://aliencoder.tistory.com/53
[OpenCV] [Python] 이미지 이진화(Binarization)와 Thresholding (임계처리) + 오츠(Otsu)
이미지 이진화(Binarization) 이미지 이진화(Binarization)는 이미지 분리(Image Segmentation)를 하는 가장 간단한 방법으로 이미지 내의 물체와 배경을 0과 1, 또는 그 반대로, 두 값만으로 픽셀값을 재설정
aliencoder.tistory.com