Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. import cv2
  2. import np as np
  3.  
  4. cap = cv2.VideoCapture(0)
  5. cv2.namedWindow("Mask")
  6.  
  7.  
  8. def nothing(*args):
  9. pass
  10.  
  11.  
  12. cv2.createTrackbar("B", "Mask", 0, 255, nothing)
  13. cv2.createTrackbar("G", "Mask", 0, 255, nothing)
  14. cv2.createTrackbar("R", "Mask", 0, 255, nothing)
  15. cv2.createTrackbar("B_max", "Mask", 0, 255, nothing)
  16. cv2.createTrackbar("G_max", "Mask", 0, 255, nothing)
  17. cv2.createTrackbar("R_max", "Mask", 0, 255, nothing)
  18. #cv2.createTrackbar("Erode", "Mask", 0, 1, nothing)
  19. #cv2.createTrackbar("Dilation", "Mask", 0, 1, nothing)
  20. #cv2.createTrackbar("Morphology", "Mask", 0, 1, nothing)
  21. #cv2.createTrackbar("kernel_erode", "Mask", 0, 30, nothing)
  22.  
  23. while (True):
  24. _, frame = cap.read()
  25. hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
  26.  
  27. R = cv2.getTrackbarPos("R", "Mask")
  28. G = cv2.getTrackbarPos("G", "Mask")
  29. B = cv2.getTrackbarPos("B", "Mask")
  30. R_max = cv2.getTrackbarPos("R_max", "Mask")
  31. G_max = cv2.getTrackbarPos("G_max", "Mask")
  32. B_max = cv2.getTrackbarPos("B_max", "Mask")
  33. #morphology_on_off = cv2.getTrackbarPos("Morphology", "Mask")
  34. #kernel_morphology = cv2.getTrackbarPos("kernel_morphology", "Mask")
  35.  
  36. lower_red = np.array([B, G, R])
  37. upper_red = np.array([B_max, G_max, R_max])
  38. mask = cv2.inRange(hsv, lower_red, upper_red)
  39.  
  40. # if morphology_on_off:
  41. # kernel = np.ones((kernel_morphology, kernel_morphology), np.uint8)
  42. # mask_morphology = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
  43. # cv2.imshow("Mask_morphology",mask_morphology)
  44. cv2.imshow("Mask", mask)
  45. cv2.imshow("hsv", hsv)
  46.  
  47. contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
  48. for cnt in contours:
  49. area = cv2.contourArea(cnt)
  50. if area > 400:
  51. approx = cv2.approxPolyDP(cnt, 0.009 * cv2.arcLength(cnt, True), True)
  52. cv2.drawContours(frame, [approx], -1, (0, 255, 0), 10)
  53.  
  54. cv2.imshow("img", frame)
  55. if cv2.waitKey(1) & 0xFF == ord('q'):
  56. break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement