Skip to content

Instantly share code, notes, and snippets.

@SarvagyaVaish
Last active December 2, 2016 22:11
Show Gist options
  • Save SarvagyaVaish/cc6fb69d1c523a94e04daeacf2641fce to your computer and use it in GitHub Desktop.
Save SarvagyaVaish/cc6fb69d1c523a94e04daeacf2641fce to your computer and use it in GitHub Desktop.
import numpy as np
import cv2
import math
cap = cv2.VideoCapture(0)
ret, frame_large = cap.read()
scale = 0.5
frame = cv2.resize(frame_large, None, fx=scale, fy=scale, interpolation=cv2.INTER_CUBIC)
y, x, c = np.shape(frame)
center = (y/2, x/2)
while (True):
# Capture frame
_, frame_large = cap.read()
frame = cv2.resize(frame_large, None, fx=scale, fy=scale, interpolation=cv2.INTER_CUBIC)
# Grayscale
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Smooth
frame = cv2.GaussianBlur(frame, (5, 5), 0)
frame = cv2.medianBlur(frame, 15)
circles = cv2.HoughCircles(frame, cv2.cv.CV_HOUGH_GRADIENT, 1, 20,
param1=50, param2=60, minRadius=0, maxRadius=0)
average_center = [-1, -1]
if circles != None:
for i in circles[0, :]:
average_center[0] += i[0]
average_center[1] += i[1]
# cv2.circle(frame, (i[0], i[1]), i[2], (0, 255, 0), 2)
# cv2.circle(frame, (i[0], i[1]), 2, (0, 0, 255), 3)
average_center[0] /= len(circles[0, :])
average_center[1] /= len(circles[0, :])
if average_center[0] != -1:
cv2.circle(frame, (int(average_center[0]), int(average_center[1])), 2, (0, 0, 255), 3)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment