Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import cv2
- # multiple cascades: https://github.com/Itseez/opencv/tree/master/data/haarcascades
- # https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml
- face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
- # https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_eye.xml
- eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
- cap = cv2.VideoCapture(0)
- while 1:
- ret, img = cap.read()
- gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- faces = face_cascade.detectMultiScale(gray, 1.3, 5)
- for (x, y, w, h) in faces:
- cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
- roi_gray = gray[y:y + h, x:x + w]
- roi_color = img[y:y + h, x:x + w]
- #cv2.imshow("roi_color",roi_color)
- eyes = eye_cascade.detectMultiScale(roi_gray)
- for (ex, ey, ew, eh) in eyes:
- cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
- eye_color = roi_color[ey:ey + eh, ex:ex + ew]
- cloneImage = cv2.cvtColor(eye_color, cv2.COLOR_BGR2GRAY)
- cloneImage = cv2.medianBlur(cloneImage, 5)
- cimg = cv2.cvtColor(cloneImage, cv2.COLOR_GRAY2BGR)
- try:
- circles = cv2.HoughCircles(cloneImage, cv2.HOUGH_GRADIENT, 1, int(ew / 8),
- param1=20, param2=15, minRadius=int(eh / 8), maxRadius=int(eh / 3))
- circles = np.uint16(np.around(circles))
- counter = 0
- for i in circles[0, :]:
- counter = 1
- # draw the outer circle
- cv2.circle(eye_color, (i[0], i[1]), i[2], (0,0, 255), 2)
- # draw the center of the circle
- cv2.circle(eye_color, (i[0], i[1]), 2, (100, 125, 255), 3)
- if counter == 1:
- break
- except:
- print("exception:")
- cv2.imshow('img', img)
- k = cv2.waitKey(30) & 0xff
- if k == 27:
- break
- cap.release()
- cv2.destroyAllWindows()
Advertisement
Add Comment
Please, Sign In to add comment