인공지능/OpenCV

[OpenCV] 트랙바를 이용하여 이진화

여니여니_ 2020. 4. 9. 01:17
import cv2

def onChange(pos): # 트랙바 핸들러
    pos = cv2.getTrackbarPos('V','dst')

cv2.namedWindow('dst')

# 트랙바 생성
cv2.createTrackbar('V', 'dst', 0, 255, onChange)
# 트랙바 위치 초기화
cv2.setTrackbarPos('V', 'dst', 100)

while(1):
    img=cv2.imread('fruits.jpg')
    img=cv2.resize(img, (600,400))
    pos = cv2.getTrackbarPos('V','dst')

    #영상을 읽어와서 hsv로 변환해준다.
    hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    h,s,v=cv2.split(hsv)

    th,v2= cv2.threshold(v, pos, 255, cv2.THRESH_BINARY)
    hsv2=cv2.merge([h,s,v2])
    dst=cv2.cvtColor(hsv2,cv2.COLOR_HSV2BGR)
    
    cv2.imshow('dst',dst)

    if cv2.waitKey(1) & 0xFF == 27:
        break
 

cv2.setMouseCallback('img',onChange)
cv2.waitKey()
cv2.destroyAllWindows()

원본 이미지

 

 

 

 

결과 동영상