thresholding은 임계점, 한계점, 문턱이라는 뜻. 반올림과 비슷한 느낌

사용자가 특정 수치값을 정해놓으면 그 기준값을 통해 값을 도출함

임계처리

- 임계처리(thresholding)는 이미지 행렬에서 하나의 픽셀값을 사용자가 지정한 기준값(threshold)를 사용하여 이진화(binarization)하는 가장 단순한 필터

 

- 이진화 처리란 영상을 흑/백으로 분류하여 처리하는 것

이때 기준이 되는 임계값을 어떻게 결정할 것인지가 중요한 문제

임계값보다 크면 백, 작으면 흑이 됨

기본 임계처리는 사용자가 고정된 임계값을 결정하고 그 결과를 보여주는 단순한 형태

 

OpenCV에서는 threshold라는 함수로 구현되어 있고 인수는 아래와 같다.

  • threshold(src, thresh, maxval, type)
    • src : 그레이스케일 이미지
    • thresh : 기준값
    • maxval : 기준값을 넘었을 때 적용할 최대값
    • type : 임계처리 유형
      • THRESH_BINARY : 기준값을 넘으면 최대값 아니면 0
      • THRESH_BINARY_INV : 기준값을 넘으면 0 아니면 최대값
      • THRESH_TRUNC : 기준값을 넘으면 기준값 아니면 최대값
      • THRESH_TOZERO : 기준값을 넘으면 원래값 아니면 0
      • THRESH_TOZERO_INV : 기준값을 넘으면 0 아니면 원래값

각 임계유형의 결과를 시각화해본다.

BINARY의 경우는 이미지 픽셀값이 다 255값을 가지게 되고, BINARY_INV의 경우는 그의 반대..

이런식으로 임계값을 이용하여 이미지 또는 영상을 처리할 수 있다.

 

적응임계처리

위의 결과를 보면 한가지 문제점이 있다. 임계값을 이미지 전체에 적용하여 처리하기 때문에 하나의 이미지에 음영이 다르면 일부 영역이 모두 흰색 또는 검정색으로 보여지게 되는 것이다.

 

이런 문제를 해결하기 위해서 이미지의 작은 영역별로 thresholding을 하면 된다.

OpenCV에서는 adaptiveThreshold 함수로 구현되어 있다.

 

  • adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
    • src : 그레이스케일 이미지
    • maxValue – 기준값을 넘었을 때 적용할 값
    • adaptiveMethod : 영역 내에서 기준값을 계산하는 방법
      • ADAPTIVE_THRESH_MEAN_C: 영역 내의 평균값에 C를 뺀 값을 기준값으로 사용
      • ADAPTIVE_THRESH_GAUSSIAN_C: 영역에 추후 설명할 가우시안 블러를 적용한 후 C를 뺀 값을 기준값으로 사용
    • thresholdType : 임계처리 유형
      • THRESH_BINARY
      • THRESH_BINARY_INV
    • blockSize : 임계처리를 적용할 영역의 크기
    • C : 평균이나 가중평균에서 차감할 값

 

 

참고 사이트

https://datascienceschool.net/03%20machine%20learning/03.02.02%20%EC%9D%B4%EB%AF%B8%EC%A7%80%20%ED%95%84%ED%84%B0%EB%A7%81.html

 

https://opencv-python.readthedocs.io/en/latest/doc/11.imageSmoothing/imageSmoothing.html

'Project > Image Handling' 카테고리의 다른 글

이미지 블러링  (0) 2021.06.03
이미지 필터링  (2) 2021.06.03
이미지 처리  (0) 2021.06.01

+ Recent posts