bedtech891

obj_det

Aug 5th, 2020
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Object Detection Realtime
  2. import numpy as np
  3. import cv2
  4.  
  5. blob_params = cv2.SimpleBlobDetector_Params()
  6. blob_params.minThreshold = 10
  7. blob_params.maxThreshold = 100
  8. blob_params.filterByArea = True
  9. blob_params.minArea = 1500
  10. blob_params.filterByCircularity = True
  11. blob_params.minCircularity = 0.1
  12. blob_params.filterByConvexity = True
  13. blob_params.minConvexity = 0.87
  14. blob_params.filterByInertia = True
  15. blob_params.minInertiaRatio = 0.01
  16.  
  17. # Set this to 255 to detect bright objects
  18. # blob_params.blobColor = 255
  19.  
  20. blob_detector = cv2.SimpleBlobDetector_create(blob_params)
  21. body_cascade = cv2.CascadeClassifier('haarcascade_upperbody.xml')
  22. if body_cascade.empty():
  23.     body_cascade = cv2.CascadeClassifier('haarcascade_fullbody.xml')
  24. face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
  25. eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
  26.  
  27. body_loaded = body_cascade and not body_cascade.empty()
  28. face_loaded = face_cascade and not face_cascade.empty()
  29. eye_loaded = eye_cascade and not eye_cascade.empty()
  30. cascades_loaded = body_loaded and face_loaded and eye_loaded
  31.  
  32. cap = cv2.VideoCapture(1)
  33. if not cap.isOpened():
  34.     cap = cv2.VideoCapture(0)
  35. if not cap.isOpened():
  36.     exit(1)
  37. cap.set(3,640) # set Width
  38. cap.set(4,480) # set Height
  39.  
  40. while(True):
  41.     ret, img = cap.read()
  42.     #frame = cv2.flip(frame, -1) # Flip camera vertically
  43.     gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  44.  
  45.     blobs = blob_detector.detect(img)
  46.     cv2.drawKeypoints(img, blobs, np.array([]), (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)  
  47.     for kp in blobs:
  48.         cv2.circle(img, (int(kp.pt[0]), int(kp.pt[1])), int(kp.size), (0, 0, 255))
  49.  
  50.     if cascades_loaded:
  51.         bodies = body_cascade.detectMultiScale(gray, 1.3, 5)
  52.         for (x,y,w,h) in bodies:
  53.             cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,255),2)
  54.             print("body")
  55.  
  56.         faces = face_cascade.detectMultiScale(gray, 1.3, 5)
  57.         for (x,y,w,h) in faces:
  58.             cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,255),2)
  59.             print("face")
  60.             roi_gray = gray[y:y+h, x:x+w]
  61.             roi_color = img[y:y+h, x:x+w]
  62.             eyes = eye_cascade.detectMultiScale(roi_gray)
  63.             for(ex,ey,ew,eh) in eyes:
  64.                 cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(255,255,0),2)
  65.                 print("eye")
  66.  
  67.     cv2.imshow('frame', img)
  68.     cv2.imshow('gray', gray)
  69.  
  70.     k = cv2.waitKey(30) & 0xff
  71.     if k == 27: # press 'ESC' to quit
  72.         break
  73.  
  74. cap.release()
  75. cv2.destroyAllWindows()
Add Comment
Please, Sign In to add comment