def main():
'''
Test screen_position
'''
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
mask = detect_color(frame)
cv2.imshow('frame', frame)
cv2.imshow('mask', mask)
masked_frame = cv2.bitwise_and(frame, frame, mask=mask)
imgray = cv2.cvtColor(masked_frame, cv2.COLOR_BGR2GRAY)
contours, hierarchy = cv2.findContours(imgray,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
contours = sorted(contours, key=lambda x:len(x), reverse=True)
i = 0
while(i < len(contours)):
x,y,w,h = cv2.boundingRect(contours[i])
rect_cnt = np.array([[[x, y]], [[x+w, y]], [[x+w, y+h]], [[x, y+h]]], dtype=np.int32)
rect_cnt_area = cv2.contourArea(rect_cnt)
if(cv2.contourArea(contours[i]) > VALID_AREA_RATIO * rect_cnt_area and \
rect_cnt_area > VALID_MIN_AREA and \
rect_cnt_area < VALID_MAX_AREA):
cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
break
else:
i += 1
cv2.imshow('Contours', frame)
if cv2.waitKey(1) & 0xFF == 27:
break
print(get_screen_gray_level(masked_frame))
cap.release()
cv2.destroyAllWindows()
评论列表
文章目录