Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cv2
- import np as np
- cap = cv2.VideoCapture(0)
- cv2.namedWindow("Mask")
- def nothing(*args):
- pass
- cv2.createTrackbar("B", "Mask", 0, 255, nothing)
- cv2.createTrackbar("G", "Mask", 0, 255, nothing)
- cv2.createTrackbar("R", "Mask", 0, 255, nothing)
- cv2.createTrackbar("B_max", "Mask", 0, 255, nothing)
- cv2.createTrackbar("G_max", "Mask", 0, 255, nothing)
- cv2.createTrackbar("R_max", "Mask", 0, 255, nothing)
- #cv2.createTrackbar("Erode", "Mask", 0, 1, nothing)
- #cv2.createTrackbar("Dilation", "Mask", 0, 1, nothing)
- #cv2.createTrackbar("Morphology", "Mask", 0, 1, nothing)
- #cv2.createTrackbar("kernel_erode", "Mask", 0, 30, nothing)
- while (True):
- _, frame = cap.read()
- hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
- R = cv2.getTrackbarPos("R", "Mask")
- G = cv2.getTrackbarPos("G", "Mask")
- B = cv2.getTrackbarPos("B", "Mask")
- R_max = cv2.getTrackbarPos("R_max", "Mask")
- G_max = cv2.getTrackbarPos("G_max", "Mask")
- B_max = cv2.getTrackbarPos("B_max", "Mask")
- #morphology_on_off = cv2.getTrackbarPos("Morphology", "Mask")
- #kernel_morphology = cv2.getTrackbarPos("kernel_morphology", "Mask")
- lower_red = np.array([B, G, R])
- upper_red = np.array([B_max, G_max, R_max])
- mask = cv2.inRange(hsv, lower_red, upper_red)
- # if morphology_on_off:
- # kernel = np.ones((kernel_morphology, kernel_morphology), np.uint8)
- # mask_morphology = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
- # cv2.imshow("Mask_morphology",mask_morphology)
- cv2.imshow("Mask", mask)
- cv2.imshow("hsv", hsv)
- contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
- for cnt in contours:
- area = cv2.contourArea(cnt)
- if area > 400:
- approx = cv2.approxPolyDP(cnt, 0.009 * cv2.arcLength(cnt, True), True)
- cv2.drawContours(frame, [approx], -1, (0, 255, 0), 10)
- cv2.imshow("img", frame)
- if cv2.waitKey(1) & 0xFF == ord('q'):
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement