영상의 이진화

매일 공부(ML)·2021년 12월 7일
0

OPEN CV

목록 보기
36/45

영상의 이진화(Binarization)

영상의 픽셀 값을 0 or 255(1)로 만드는 연산으로 배경 vs 객체 / 관심영역 vs 비관심 영역으로 할 때 사용이 된다.

그레이스케일 영상의 이진화

*T: 임계값, 문턱치, threshold

임계값 함수

cv2.threshold(src, thresh, maxval, type, dst=None) -> retval, dst
  • src: 입력 영상. 다채널, 8비트 또는 32비트 실수형.

  • thresh: 사용자 지정 임계값

  • maxval: cv2.THRESH_BINARY 또는 cv2.THRESH_BINARY_INV 방법 사용 시 최댓값으로 보통 255로 지정.

  • type: cv2.THRESH_ 로 시작하는 플래그. 임계값 함수 동작 지정 또는 자동 임계값 결정 방법 지정

  • retval: 사용된 임계값

  • dst: 출력 영상. src와 동일 크기 , 타입, 채널 수.

  • cv2.thershold() 함수 동작 타입

예제

영상의 이진화

src = cv2.imread('cells.png', cv2.IMREAD_GRAYSCALE)
_, dst1 = cv2.threshold(src, 100, 255, cv2.THRESH_BINARY)
_, dst2 = cv2.threshold(src, 210, 255, cv2.THRESH_BINARY)

트랙바를 이용한 예제

src = cv2.imread('cells.png', cv2.IMREAD_GRAYSCALE)
def on_threshold(pos):
	_, dst = cv2.threshold(src, pos, 255, cv2.THRESH_BINARY)
	cv2.imshow('dst', dst)

cv2.imshow('src', src)
cv2.namedWindow('dst')
cv2.createTrackbar('Threshold', 'dst', 0, 255, on_threshold)
cv2.setTrackbarPos('Threshold', 'dst', 128)

cv2.waitKey()
cv2.destroyAllWindows()

profile
성장을 도울 아카이빙 블로그

0개의 댓글