image = cv2.imread('black.jpg', cv2.IMREAD_GRAYSCALE)
images = []
# 임계값이 127, 임계값보다 크면 255, 작으면 0
ret, thresh1 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
# 임계값이 127, 임계값보다 작으면 255, 크면 0
ret, thresh2 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY_INV)
# 임계값이 127, 임계값보다 크면 임계값, 작으면 0
ret, thresh3 = cv2.threshold(image, 127, 255, cv2.THRESH_TRUNC)
# 임계값이 127, 임계값보다 크면 그대로, 작으면 0
ret, thresh4 = cv2.threshold(image, 127, 255, cv2.THRESH_TOZERO)
# 임계값이 127, 임계값보다 작으면 그대로, 크면 0
ret, thresh5 = cv2.threshold(image, 127, 255, cv2.THRESH_TOZERO_INV)
images.append(thresh1)
images.append(thresh2)
images.append(thresh3)
images.append(thresh4)
images.append(thresh5)
for i in images:
plt.imshow(cv2.cvtColor(i, cv2.COLOR_BGR2RGB))
plt.show()
하나의 이미지에 여러 개의 조명이 존재할 때 적용하면 유용
import cv2
import matplotlib.pyplot as plt
image = cv2.imread('white.jpg', cv2.IMREAD_GRAYSCALE)
ret, thresh1 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
thresh2 = 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(thresh1, cv2.COLOR_GRAY2RGB))
plt.show()
plt.imshow(cv2.cvtColor(thresh2, cv2.COLOR_GRAY2RGB))
plt.show()