본문 바로가기
Opencv

Opencv Threshold 설명

by 연원랑 2023. 2. 17.

Threshold(이미지 임계값)

 

이미지 처리에서 가장 기본적인 작업 중 하나는 이미지 임계값입니다. 이미지 임계값은 강도 값을 기준으로 이미지의 개체 또는 영역을 구분하는 데 사용되는 기술입니다. 이 블로그에서는 OpenCV 임계값의 원리와 Python에서 이를 사용하는 방법에 대해 설명합니다.

이미지 임계값이란?

이미지 임계값은 이미지를 픽셀 값이 0 또는 255인 이진 이미지로 변환하는 프로세스입니다. 임계값은 이미지의 픽셀 강도 값을 임계값과 비교하여 수행됩니다. 픽셀의 강도 값이 임계값보다 크면 255로 설정되고 그렇지 않으면 0으로 설정됩니다.

임계값은 강도 값을 기준으로 이미지의 개체 또는 영역을 구분하는 데 사용할 수 있습니다. 예를 들어 흰색 배경에 검은색 물체가 있는 이미지에서 임계값을 사용하여 물체의 픽셀 값을 255로 설정하고 배경을 0으로 설정하여 물체를 배경에서 분리할 수 있습니다.

OpenCV 임계값의 원리

OpenCV는 Simple Thresholding, Adaptive Thresholding 및 Otsu의 이진화를 비롯한 여러 임계값 지정 기술을 제공합니다. 각 기술에는 장점과 단점이 있으며 기술 선택은 특정 응용 프로그램에 따라 다릅니다.

단순 임계값

OpenCV에서 가장 간단한 임계값 지정 기술은 Simple Thresholding 기술입니다. 이 기술은 이미지의 픽셀 강도 값을 고정된 임계값과 비교합니다. 픽셀의 강도 값이 임계값보다 크면 255로 설정되고, 그렇지 않으면 0으로 설정됩니다. 단순 임계값은 모든 이미지에 대해 임계값을 알고 고정한 경우에 사용할 수 있습니다.

 

ret,thresh = cv2.threshold(image, threshold_value, max_value, threshold_type)
  • image  = 입력 이미지
  • threshold_value = 임계값
  • max_value = 픽셀이 취할 수 있는 최대값
  • threshold_type = 적용할 임계값 유형

 

Adaptive Threshold(적응 이미지 임계값)


임계값을 알 수 없는 경우 적응 임계값을 사용할 수 있습니다. 적응 임계값은 픽셀 주변의 작은 이웃을 기반으로 각 픽셀의 임계값을 계산하는 기술입니다. 이 기술은 이미지의 조명 조건이 고르지 않거나 대비가 낮을 때 특히 유용합니다.

OpenCV에서 Adaptive Thresholding을 사용하기 위한 구문은 다음과 같습니다.

thresh = cv2.adaptiveThreshold(image, max_value, adaptive_method, threshold_type, block_size, constant)
  • image = 입력 이미지
  • max_value = 픽셀이 취할 수 있는 최대값
  • adaptive_method = 임계값을 계산 하는데 사용되는 방법
  • threshold_type = 적용할 임계값 유형
  • block_size = 픽셀 주변의 이웃 크기

constant  = 평균 또는 가중 평균에서 뺀 상수

댓글