본문 바로가기

PROGRAM/OpenCV

opencv python - TrackBar 사용하기(HSV)

import cv2

src = cv2.imread("Images/tomato.jpg", cv2.IMREAD_COLOR)
src = cv2.pyrDown(src)
hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)

cv2.namedWindow("TrackBar Windows")
cv2.createTrackbar("H-Low1","TrackBar Windows", 0, 180, lambda x : x)
cv2.createTrackbar("H-High1","TrackBar Windows",0, 180, lambda x : x)
cv2.createTrackbar("H-Low2","TrackBar Windows", 0, 180, lambda x : x)
cv2.createTrackbar("H-High2","TrackBar Windows",0, 180, lambda x : x)
cv2.createTrackbar("S-Th","TrackBar Windows", 0, 255, lambda x : x)
cv2.createTrackbar("V-Th","TrackBar Windows", 0, 255, lambda x : x)
cv2.setTrackbarPos("H-Low1","TrackBar Windows", 0)
cv2.setTrackbarPos("H-High1","TrackBar Windows",5)
cv2.setTrackbarPos("H-Low2","TrackBar Windows", 170)
cv2.setTrackbarPos("H-High2","TrackBar Windows",180)
cv2.setTrackbarPos("S-Th","TrackBar Windows", 100)
cv2.setTrackbarPos("V-Th","TrackBar Windows", 100)        

while cv2.waitKey(1) != ord('q'):
    hsv1_low = cv2.getTrackbarPos("H-Low1", "TrackBar Windows")
    hsv1_high = cv2.getTrackbarPos("H-High1", "TrackBar Windows")
    hsv2_low = cv2.getTrackbarPos("H-Low2", "TrackBar Windows")
    hsv2_high = cv2.getTrackbarPos("H-High2", "TrackBar Windows")
    hsv_s = cv2.getTrackbarPos("S-Th", "TrackBar Windows")
    hsv_v = cv2.getTrackbarPos("V-Th", "TrackBar Windows")
    lower_hsv = cv2.inRange(hsv, (hsv1_low, hsv_s, hsv_v), (hsv1_high, 255, 255))
    upper_hsv = cv2.inRange(hsv, (hsv2_low, hsv_s, hsv_v), (hsv2_high, 255, 255))
    added_hsv = cv2.addWeighted(lower_hsv, 1.0, upper_hsv, 1.0, 0.0)
    hsv_out = cv2.bitwise_and(hsv, hsv, mask = added_hsv)
    result = cv2.cvtColor(hsv_out, cv2.COLOR_HSV2BGR)
    cv2.imshow("TrackBar Windows", result)


cv2.destroyAllWindows()

 

- HSV에서 H값은 일반적으로 하나만 사용하면 되지만 RED의경우 180과0이 분리되어 있으므로 두개를 사용하면 됨

- 위의 그림과 같이 H 설정값을 하나 비활성화 하면 됨

- S와 V도 마찬가지로 설정하면 S설정값, V설정값 이상만 활성화됨

'PROGRAM > OpenCV' 카테고리의 다른 글

Object Tracking  (0) 2021.01.12
pyQt5 + cv2.findContours  (0) 2020.06.11
Anaconda - (ModuleNotFoundError: No module named 'cv2')  (1) 2020.05.19
opencv python - TrackBar 사용하기(YCrCb)  (0) 2020.04.22
참고자료  (0) 2020.04.21