前提
Tobii Pro Sparkを使い視点の描画を行っています。描画することは出来たのですが前に描画した円を消す方法がわからず質問します。
実現したいこと
・前に描画した円を消す
・描画されている円の座標をウインドウ上に表示
実際の結果を載せます。
該当のソースコード
Python
1 2import tobii_research as tr 3import sys 4import time 5import numpy as np 6import cv2 7 8img = np.zeros((1200,1920,3), np.uint8) 9img_r = np.zeros((1200,1920,3), np.uint8) 10img_l = np.zeros((1200,1920,3), np.uint8) 11 12cv2.imshow("MyEyeTrack", img) 13cv2.imshow("MyEyeTrack", img_r) 14cv2.imshow("MyEyeTrack", img_l) 15 16eyetracker_address = "tobii-prp://TPE01-100202141575" 17eyetracker = tr.EyeTracker(eyetracker_address) 18 19def MyCallBack(gaze_data): 20 time_stamp = gaze_data.device_time_stamp 21 left_point = gaze_data.left_eye.gaze_point.position_on_display_area 22 right_point = gaze_data.right_eye.gaze_point.position_on_display_area 23 center_x = (int)(((left_point[0] + right_point[0]) / 2) * 1920) 24 center_y = (int)(((left_point[1] + right_point[1]) / 2) * 1200) - 50 25 R_x = (int)((right_point[0]) * 1920) 26 L_x = (int)((left_point[0]) * 1200) 27 R_y = (int)((right_point[1]) * 1920) 28 L_y = (int)((left_point[1]) * 1200) 29 print(left_point) 30 print(right_point) 31 print("center_x:", ((left_point[0] + right_point[0]) / 2)) 32 print("center_y:", ((left_point[1] + right_point[1]) / 2)) 33 print("\n") 34 35 36 global img, img_r, img_l 37 img = cv2.circle(img, (center_x, center_y), 10, (255, 255, 255), -1) 38 39 img_r = cv2.circle(img, (R_x, R_y), 10, (255, 0, 0), -1) 40 img_l = cv2.circle(img, (L_x, L_y), 10, (0, 0, 255), -1) 41 42eyetracker.subscribe_to(tr.EYETRACKER_GAZE_DATA, MyCallBack, as_dictionary=False) 43 44while(True): 45 key = cv2.waitKey(100) 46 cv2.imshow("MyEyeTrack", img_r) 47 cv2.imshow("MyEyeTrack", img_l) 48 49 # if Key is "ESC" 50 if key == 27: 51 eyetracker.unsubscribe_from(tr.EYETRACKER_GAZE_DATA, MyCallBack) 52 cv2.destroyAllWindows() 53 sys.exit() 54 55
円を描画する前に,画像バッファの内容を適当にクリアすればよい(:黒で全体を塗りつぶすことに相当するようなことをすればよい)のではないでしょうか.
回答1件
あなたの回答
tips
プレビュー