座標[] の以前の値を返すと想定される場合、 last_coordinate[] 値はゼロを返します。検出されたオブジェクトの座標を伝えるカメラからデータをライブで読み取ります。last_coordinates 値を実装して、以前の座標値と新しい座標値を比較し、それらを区別してアクションを実行する理由。これを修正するにはどうすればよいですか?
import socket
import os,sys
import time
from threading import Thread
HOST = '59.191.193.67'
PORT = 5555
coordinates = []
def connect():
globals()['client_socket'] = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST,PORT))
def update_coordinates():
screen_width = 0
screen_height = 0
global last_coordinates
last_coordinates = [0 for _ in range(19)]
while True:
try:
client_socket.send("loc\n")
data = client_socket.recv(8192)
except:
connect();
continue;
globals()['coordinates'] = data.split()
if(not(coordinates[-1] == "eom" and coordinates[0] == "start")):
continue
if (screen_width != int(coordinates[2])):
screen_width = int(coordinates[2])
screen_height = int(coordinates[3])
return
if (coordinates != last_coordinates):
return last_coordinates[16:19]
last_coordinates = coordinates[:]
Thread(target=update_coordinates).start()