Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. import cv2
  2. import numpy as np
  3.  
  4.  
  5. def nothing(a):
  6. pass
  7.  
  8.  
  9. def mask_red(frame_hsv):
  10. red_mask_orange = cv2.inRange(frame_hsv, np.array([0, 85, 110]), np.array([15, 255, 255]))
  11. red_mask_violet = cv2.inRange(frame_hsv, np.array([165, 85, 110]), np.array([180, 255, 255]))
  12. return red_mask_orange + red_mask_violet
  13.  
  14.  
  15. def mask_green(frame_hsv):
  16. return cv2.inRange(frame_hsv, np.array([40, 85, 110]), np.array([91, 255, 255]))
  17.  
  18.  
  19. wnd = 'frame'
  20. cap = cv2.VideoCapture(0)
  21. cv2.namedWindow(wnd)
  22. cv2.createTrackbar('Hul', wnd, 0, 180, nothing)
  23. cv2.createTrackbar('Sal', wnd, 0, 255, nothing)
  24. cv2.createTrackbar('Val', wnd, 0, 255, nothing)
  25.  
  26. cv2.createTrackbar('Huh', wnd, 0, 180, nothing)
  27. cv2.createTrackbar('Sah', wnd, 0, 255, nothing)
  28. cv2.createTrackbar('Vah', wnd, 0, 255, nothing)
  29.  
  30. while (cap.isOpened()):
  31. _, frame = cap.read()
  32. hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
  33. hsv = cv2.GaussianBlur(hsv, (5, 5), 0)
  34.  
  35. hul = cv2.getTrackbarPos('Hul', wnd)
  36. huh = cv2.getTrackbarPos('Huh', wnd)
  37. sal = cv2.getTrackbarPos('Sal', wnd)
  38. sah = cv2.getTrackbarPos('Sah', wnd)
  39. val = cv2.getTrackbarPos('Val', wnd)
  40. vah = cv2.getTrackbarPos('Vah', wnd)
  41.  
  42. mask = cv2.inRange(hsv, np.array([hul, sal, val]), np.array([huh, sah, vah]))
  43. green_mask = mask_green(hsv)
  44. red_mask = mask_red(hsv)
  45. cv2.imshow('green_mask', green_mask)
  46. cv2.imshow('red_mask', red_mask)
  47. green_circles = cv2.HoughCircles(green_mask, cv2.HOUGH_GRADIENT, 1, hsv.shape[0]/8, param1=100, param2=30, minRadius=10, maxRadius=0)
  48. red_circles = cv2.HoughCircles(red_mask, cv2.HOUGH_GRADIENT, 1, hsv.shape[0]/8, param1=100, param2=30, minRadius=10, maxRadius=0)
  49. if green_circles is not None:
  50. print('green', green_circles)
  51. for circle in green_circles:
  52. cv2.circle(frame, (circle[0][0], circle[0][1]), circle[0][2], (0, 255, 0), 0)
  53. if red_circles is not None:
  54. print('red', red_circles)
  55. for circle in red_circles:
  56. cv2.circle(frame, (circle[0][0], circle[0][1]), circle[0][2], (0, 0, 255), 0)
  57. cv2.imshow(wnd, frame)
  58. cv2.imshow('mask', mask)
  59. if cv2.waitKey(1) == ord('q'):
  60. cv2.destroyAllWindows()
  61. break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement