PROGRAM/OpenCV
opencv python - TrackBar 사용하기(YCrCb)
Aryazoa
2020. 4. 22. 16:18
색좌표계가 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()