본문 바로가기

PROGRAM/OpenCV

opencv python - TrackBar 사용하기(YCrCb)

색좌표계가  YCbCr이 아니고 YCrCb이다

 

import cv2
src = cv2.imread('images/tomato.jpg',cv2.IMREAD_COLOR)
src = cv2.pyrDown(src)
ycrcb = cv2.cvtColor(src, cv2.COLOR_BGR2YCrCb)

cv2.namedWindow("TrackBar Windows")
cv2.createTrackbar("Y-Low","TrackBar Windows", 0, 255, lambda x : x)
cv2.createTrackbar("Y-High","TrackBar Windows",0, 255, lambda x : x)
cv2.createTrackbar("Cr-Low","TrackBar Windows", 0, 255, lambda x : x)
cv2.createTrackbar("Cr-High","TrackBar Windows",0, 255, lambda x : x)
cv2.createTrackbar("Cb-Low","TrackBar Windows", 0, 255, lambda x : x)
cv2.createTrackbar("Cb-High","TrackBar Windows",0, 255, lambda x : x)

cv2.setTrackbarPos("Y-Low","TrackBar Windows", 127)
cv2.setTrackbarPos("Y-High","TrackBar Windows",255)
cv2.setTrackbarPos("Cr-Low","TrackBar Windows", 127)
cv2.setTrackbarPos("Cr-High","TrackBar Windows",255)
cv2.setTrackbarPos("Cb-Low","TrackBar Windows", 127)
cv2.setTrackbarPos("Cb-High","TrackBar Windows", 255)        

while cv2.waitKey(1) != ord('q'):
    y_low = cv2.getTrackbarPos("Y-Low", "TrackBar Windows")
    y_high = cv2.getTrackbarPos("Y-High", "TrackBar Windows")
    cr_low = cv2.getTrackbarPos("Cr-Low", "TrackBar Windows")
    cr_high = cv2.getTrackbarPos("Cr-High", "TrackBar Windows")
    cb_low = cv2.getTrackbarPos("Cb-Low", "TrackBar Windows")
    cb_high = cv2.getTrackbarPos("Cb-High", "TrackBar Windows")
    ycrcb_mask = cv2.inRange(ycrcb, (y_low, cr_low, cb_low), (y_high, cr_high, cb_high))
    ycrcb_result = cv2.bitwise_and(ycrcb, ycrcb, mask = ycrcb_mask)
    result = cv2.cvtColor(ycrcb_result, cv2.COLOR_YCrCb2BGR)
    cv2.imshow("TrackBar Windows", result)

cv2.destroyAllWindows()

'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 사용하기(HSV)  (0) 2020.04.22
참고자료  (0) 2020.04.21