# RGB/BGR [0,0,0] -> siyah [255,255,255] -> beyaz
# HSV(Hue, Saturation, Value)
import cv2
import numpy as np
from fonksiyonlar import stackImages

def empty(n):
    pass

if __name__ == '__main__':
    path = "resources/lambo.png"
    cv2.namedWindow("TrackBars")
    cv2.resizeWindow("TackBars", 640, 240)
    cv2.createTrackbar("Hue Min", "TrackBars", 0, 179, empty)
    cv2.createTrackbar("Hue Max", "TrackBars", 19, 179, empty)
    cv2.createTrackbar("Sat Min", "TrackBars", 110, 255, empty)
    cv2.createTrackbar("Sat Max", "TrackBars", 240, 255, empty)
    cv2.createTrackbar("Val Min", "TrackBars", 153, 255, empty)
    cv2.createTrackbar("Val Max", "TrackBars", 255, 255, empty)

    while True:
        img = cv2.imread(path)
        imHSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
        h_min = cv2.getTrackbarPos("Hue Min", "TrackBars")
        h_max = cv2.getTrackbarPos("Hue Max", "TrackBars")
        s_min = cv2.getTrackbarPos("Sat Min", "TrackBars")
        s_max = cv2.getTrackbarPos("Sat Max", "TrackBars")
        v_min = cv2.getTrackbarPos("Val Min", "TrackBars")
        v_max = cv2.getTrackbarPos("Val Max", "TrackBars")
        print(h_min, h_max, s_min, s_max, v_min, v_max)
        lower = np.array([h_min, s_min, v_min])
        upper = np.array([h_max, s_max, v_max])
        mask = cv2.inRange(imHSV, lower, upper)
        imResult = cv2.bitwise_and(img, img, mask=mask)
        #cv2.imshow("Maske", mask)
        imStack = stackImages(0.6, [[img, imHSV], [mask, imResult]])
        cv2.imshow("Stacked Images", imStack)
        cv2.waitKey(1)