#!/usr/bin/python
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
hsv = cv2.cvtColor(frame , cv2.COLOR_BGR2HSV)
l_red = np.array([150,150,50])
u_red = np.array([180,255,150])
mask = cv2.inRange(hsv , l_red , u_red)
res = cv2.bitwise_and(frame , frame , mask = mask)
cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)[-2]
# print frame
# print cnts
center = None
# only proceed if at least one contour was found
# if len(cnts) > 0:
# find the largest contour in the mask, then use
# it to compute the minimum enclosing circle and
# centroid
try:
areas = [cv2.contourArea(c) for c in cnts]
max_index = np.argmax(areas)
# print max_index
cnt=cnts[max_index]
x,y,w,h = cv2.boundingRect(cnt)
print "X = ",x," Y=",y," w=",w," h= ",h
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
pass
except:
pass
else:
pass
# # only proceed if the radius meets a minimum size
# if radius > 10:
# # draw the circle and centroid on the frame,
# # then update the list of tracked points
# cv2.circle(frame, (int(x), int(y)), int(radius),
# (0, 255, 255), 2)
# cv2.circle(frame, center, 5, (0, 0, 255), -1)
# cnts = cnts[0] if imutils.is_cv2() else cnts[1]
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
cv2.imshow('frame' , frame)
# cv2.imshow('mask' , mask)
# cv2.imshow('res' , res)
cv2.destroyAllWindows()
cap.release()
##Subscribe and comment
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
hsv = cv2.cvtColor(frame , cv2.COLOR_BGR2HSV)
l_red = np.array([150,150,50])
u_red = np.array([180,255,150])
mask = cv2.inRange(hsv , l_red , u_red)
res = cv2.bitwise_and(frame , frame , mask = mask)
cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)[-2]
# print frame
# print cnts
center = None
# only proceed if at least one contour was found
# if len(cnts) > 0:
# find the largest contour in the mask, then use
# it to compute the minimum enclosing circle and
# centroid
try:
areas = [cv2.contourArea(c) for c in cnts]
max_index = np.argmax(areas)
# print max_index
cnt=cnts[max_index]
x,y,w,h = cv2.boundingRect(cnt)
print "X = ",x," Y=",y," w=",w," h= ",h
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
pass
except:
pass
else:
pass
# # only proceed if the radius meets a minimum size
# if radius > 10:
# # draw the circle and centroid on the frame,
# # then update the list of tracked points
# cv2.circle(frame, (int(x), int(y)), int(radius),
# (0, 255, 255), 2)
# cv2.circle(frame, center, 5, (0, 0, 255), -1)
# cnts = cnts[0] if imutils.is_cv2() else cnts[1]
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
cv2.imshow('frame' , frame)
# cv2.imshow('mask' , mask)
# cv2.imshow('res' , res)
cv2.destroyAllWindows()
cap.release()
##Subscribe and comment
Comments
Post a Comment