def init_center(frame): hadairo = hd.hadairo_cap(frame) #肌色検出 mu = cv2.moments(hadairo, False) #重心検出 area = cv2.countNonZero(hadairo) #肌色面積 #座標の取得 x = int(mu["m10"] / mu["m00"]) y = int(mu["m01"] / mu["m00"]) #重心を表す円の表示 cv2.circle(hadairo, (x, y), 4, 100, 2, 4) #濃淡イメージに表示 print("init_x:{},init_y:{}".format(x, y)) return x, y, area, hadairo
def center(frame): hadairo = hd.hadairo_cap(frame) #肌色検出 mu = cv2.moments(hadairo, False) #座標の取得 x = int(mu["m10"] / mu["m00"]) y = int(mu["m01"] / mu["m00"]) area = cv2.countNonZero(hadairo) #重心を表す円の表示 cv2.circle(hadairo, (x, y), 5, 100, -1, 4) #濃淡イメージに表示 print("x:{} y:{} area:{}".format(x, y, area)) return x, y, area, hadairo
def center(frame, prev_x, prev_y, prev_area): hadairo = hd.hadairo_cap(frame) #肌色検出 mu = cv2.moments(hadairo, False) #座標の取得 x = int(mu["m10"] / mu["m00"]) y = int(mu["m01"] / mu["m00"]) area = cv2.countNonZero(hadairo) #前との誤差の取得 dif_x = x - prev_x dif_y = y - prev_y dif_area = area - prev_area #重心を表す円の表示 cv2.circle(hadairo, (x, y), 4, 100, 2, 4) #濃淡イメージに表示 print("dif_x:{} dif_y:{} dif_area:{}".format(dif_x, dif_y, dif_area)) return prev_x, prev_y, prev_area, x, y, area, dif_x, dif_y, dif_area, hadairo