본문 바로가기
Data Analysis/Data Analysis & Image Processing

7. OpenCV 임계점 처리하기

by SeleniumBindingProtein 2022. 4. 7.
728x90
반응형
#cv2.threshold(image, thresh, max_value, type): 임계값을 기준으로 흑/백으로 분류하는 함수

#image: 처리할 Gray Scale 이미지
#thresh: 임계 값 (전체 픽셀에 적용)
#max_value: 임계 값을 넘었을 때 적용할 값
#type: 임계점을 처리하는 방식
#1) THRESH_BINARY: 임계 값보다 크면 max_value, 작으면 0
#2) THRESH_BINARY_INV: 임계 값보다 작으면 max_value, 크면 0
#3) THRESH_TRUNC: 임계 값보다 크면 임계 값, 작으면 그대로
#4) THRESH_TOZERO: 임계 값보다 크면 그대로, 작으면 0
#5) THRESH_TOZERO_INV: 임계 값보다 크면 0, 작으면 그대로

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('cat.jpg', cv2.IMREAD_GRAYSCALE)

images = []
ret, thres1 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
ret, thres2 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY_INV)
ret, thres3 = cv2.threshold(image, 127, 255, cv2.THRESH_TRUNC)
ret, thres4 = cv2.threshold(image, 127, 255, cv2.THRESH_TOZERO)
ret, thres5 = cv2.threshold(image, 127, 255, cv2.THRESH_TOZERO_INV)
images.append(thres1)
images.append(thres2)
images.append(thres3)
images.append(thres4)
images.append(thres5)

for i in images:
  plt.imshow(cv2.cvtColor(i, cv2.COLOR_GRAY2RGB))
  plt.show()

#cv2.adaptiveThreshold(image, max_value, adaptive_method, type, block_size, C): 적응 임계점 처리 함수

#하나의 이미지에 다수의 조명 상태가 존재하는 경우 적용하면 좋습니다.
#max_value: 임계 값을 넘었을 때 적용할 값
#adaptive_method: 임계 값을 결정하는 계산 방법
#1) ADAPTIVE_THRESH_MEAN_C: 주변영역의 평균값으로 결정
#2) ADAPTIVE_THRESH_GAUSSIAN_C
#type: 임계점을 처리하는 방식
#block_size: 임계 값을 적용할 영역의 크기
#C: 평균이나 가중 평균에서 차감할 값
#Adaptive Threshold를 이용하면, 전체 픽셀을 기준으로 임계 값을 적용하지 않습니다.

import cv2

image = cv2.imread('cat2.jpg', cv2.IMREAD_GRAYSCALE)

ret, thres1 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
thres2 = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 21, 3)

plt.imshow(cv2.cvtColor(image, cv2.COLOR_GRAY2RGB))
plt.show()

plt.imshow(cv2.cvtColor(thres1, cv2.COLOR_GRAY2RGB))
plt.show()

plt.imshow(cv2.cvtColor(thres2, cv2.COLOR_GRAY2RGB))
plt.show()

728x90
반응형

'Data Analysis > Data Analysis & Image Processing' 카테고리의 다른 글

9. OpenCV 도형 그리기  (0) 2022.04.16
8. OpenCV Tracker  (0) 2022.04.16
6. OpenCV 이미지 연산  (0) 2022.04.07
5. OpenCV 이미지 변형  (0) 2022.04.07
4. OpenCV 기본 사용법  (0) 2022.04.07

댓글