파이썬(Python)/opencv

[Python]OpenCV 임계값 비교하기 threshold

끄적끄적아무거나 2022. 4. 22. 09:10
반응형

 

목차

     

     

    이번 포스트에서는 이미지가 가지고 있는 픽셀값을 threshold 함수를 사용해서 사용자가 지정한 문턱 값과 비교해서 옵션에 따라 처리하는 예제를 실행합니다. 

     

    우선 원본으로 사용할 이미지는 아래와 같습니다.

     

    예제 코드>>

    import cv2
    
    img = cv2.imread('gradient.jpg')
    
    print(img)
    
    cv2.imshow("original", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    결과>>

    [[[116 116 116] 
      [116 116 116] 
      [116 116 116] 
      ...

    원형태로 가운데로 갈수록 밝아지는(픽셀값은 255에 가까워짐) 그림입니다.

     

     

     

     

    파이썬 OpenCV threshold 함수 Syntax

     

    이미지(image)의 임계값을 확인해서 비교 출력 값을 주는 함수 threshold 함수의 사용법은 아래와 같습니다.

    ret,반환이미지 = cv2.threshold(원본이미지, 임계 픽셀값, 바꿀 값, 옵션)

     

    원본이미지를 임계 픽셀값과 비교해서 옵션에 따라 바꿀 값을 적용합니다. 옵션(Option)은 아래와 같습니다. 

     

    cv.THRESH_BINARY
    cv.THRESH_BINARY_INV
    cv.THRESH_TRUNC
    cv.THRESH_TOZERO
    cv.THRESH_TOZERO_INV

     

     

    아래 예제(Example) 구현을 통해 쉽게 이해하실 수 있습니다.

     

     

     

     

     

    파이썬 OpenCV threshold 함수 예제

     

    예제 코드>>

    import cv2
    
    img = cv2.imread('gradient.jpg')
    
    ret,threshold1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
    ret,threshold2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
    ret,threshold3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
    ret,threshold4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
    ret,threshold5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)
    
    cv2.imshow("original", img)
    cv2.imshow("THRESH_BINARY", threshold1)
    cv2.imshow("THRESH_BINARY_INV", threshold2)
    cv2.imshow("THRESH_TRUNC", threshold3)
    cv2.imshow("THRESH_TOZERO", threshold4)
    cv2.imshow("THRESH_TOZERO_INV", threshold5)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

     

    결과>>

     

    윈도우 창의 타이틀 명을 보고 비교하시면 됩니다.

     

     

     

    반응형