소소한 컴퓨터 이야기

오츠의 알고리즘 & 적응형 스레시홀드

by Cori

바이너리 이미지를 만들기 위해 경계값을 정할 때, 반복적인 시도 없이 한 번에 효율적으로 경계 값을 찾을 수 있는 오츠의 알고리즘과

원본 영상에 조명이 일정하지 않거나 배경색이 여러 가지인 경우에 사용하는 적응형 스레시홀드에 대해 알아본다. 

 

* 해당 포스팅에서 다루고 있는 모든 내용은 다음 서적을 참고하였습니다.

 

파이썬으로 만드는 OpenCV 프로젝트

“개발자에게 딱 필요한 만큼의 이론과 활용 가능한프로젝트로 배우는 OPENCV 프로그래밍”OPENCV는 영상 처리와 컴퓨터 비전 분야에서 현존하는 가장 영향력 있는 라이브러리이다.이 책은 누구나

book.naver.com


0. 오츠의 알고리즘

0) 정의

-> 경계 값을 임의로 정해서 픽셀들을 두 부류로 나누고 두 부류의 명암 분포를 반복해서 구한 다음 두 부류의 명암 분포를 가장 균일하게    하는 경계값을 선택하는 알고리즘이다. 

 

1) 오츠의 알고리즘 구현

-> cv2.threshold() 함수의 마지막 인자에 cv2.THRESH_OTSU를 추가해서 전달한다. (원래 경계 값을 전달하는 두번째 인자는 무시됨)

1. 적응형 스레시홀드

0) 정의

-> 이미지를 여러 영역으로 나눈 다음 그 주변 픽셀 값만 가지고 계산하여 경계 값을 구하는 스레시홀드

 

* 원본 영상에 조명이 일정하지 않거나 배경색이 여러 가지인 경우 아무리 여러 번 경계값을 바꿔가며 시도해도 하나의 경계 값을 이미지 전체에 적용해서는 좋은 결과를 얻지 못하기 때문에 사용한다. 

 

1) 구현

-> adaptivethreshold 함수를 사용하여 구현한다.

적응형 스레시홀드 함수에 전달하는 인자 값 중 method에는 다음 두 가지가 있다.

· cv2.ADAPTIVE_THRESH_MEAN_C: 이웃 픽셀의 평균으로 결정  -> 선명도가 좋음

· cv2.ADAPTIVE_THRESH_GAUSSIAN_C: 가우시안 분포에 따른 가중치의 합으로 결정  -> 잡티가 훨씬 적음

'AI > Computer Vision' 카테고리의 다른 글

영상 합성과 마스킹  (1) 2021.09.22
두 영상 간 다른 점 찾기 (차영상)  (1) 2021.09.21
영상 합성 (알파 블렌딩)  (0) 2021.09.20
컬러 스페이스 변환  (0) 2021.09.18
관심영역 지정하기  (0) 2021.09.17

블로그의 정보

코딩하는 오리

Cori

활동하기