이 프로그램에서는 OpenCV 라이브러리를 사용하여 이미지에 이진 임계값 처리(Binary Thresholding)를 적용하는 방법을 알아봅니다.
임계값 처리(Thresholding)는 이미지의 각 픽셀 값을 기준값(임계값)과 비교하여 새로운 값으로 변환하는 과정입니다. 픽셀 값이 임계값보다 작으면 특정 값으로, 크면 다른 값으로 대체됩니다.
이진 임계값 처리의 경우, 픽셀 값이 임계값보다 작으면 0(검정)으로 설정되고, 임계값보다 크면 255(흰색)로 할당됩니다. 그 결과 이미지는 흑과 백 두 가지 색상만으로 표현되며, 이는 객체 검출, 문서 스캔 전처리 등 다양한 컴퓨터 비전 작업에서 유용하게 활용됩니다.
원본 이미지

알고리즘
1단계: cv2 모듈을 가져옵니다. 2단계: 임계값(threshold)과 최대값(max_val)을 정의합니다. 3단계: cv2.threshold() 함수에 해당 매개변수들을 전달하고, 원하는 임계값 처리 유형을 지정합니다. 4단계: 결과 이미지를 화면에 출력합니다.
예제 코드
import cv2
image = cv2.imread('testimage.jpg')
threshold_value = 120
max_val = 255
ret, image = cv2.threshold(image, threshold_value, max_val, cv2.THRESH_BINARY)
cv2.imshow('BinaryThresholding', image)
cv2.waitKey(0)출력 결과

코드 설명
프로그램에서 ret 변수는 단순히 사용된 임계값 자체를 반환합니다. 실제 처리 결과는 두 번째 반환값인 이미지에 저장됩니다.
cv2.threshold() 함수는 네 개의 인자를 받습니다. 첫 번째는 입력 이미지, 두 번째는 임계값(여기서는 120), 세 번째는 최대값(255), 마지막은 임계값 처리 유형(cv2.THRESH_BINARY)입니다.
임계값보다 큰 값을 가진 픽셀들은 모두 max_val, 즉 255(흰색)로 대체되고, 나머지 픽셀들은 0(검정)으로 변환됩니다. 참고로 cv2.imshow()만 호출하면 창이 즉시 닫힐 수 있으므로, cv2.waitKey(0)을 함께 사용하여 결과를 확인하는 것이 좋습니다.