我是Python的新手,我正在尝试每秒创建一个将照片上传到服务器的线程。
这段代码应使用google.cloud库将照片上传到Google Cloud Platform。 我的问题是我想通过picamera每秒发送1帧。 没有线程,延迟太多了。使用下面的代码,它不是每隔一秒创建一个新线程,而是每次摄像机获得一个新帧。在完成所有操作后,它也不会“破坏”线程。你能帮我搞清楚吗?谢谢,抱歉我的英文和我的错误代码。
if int(round(time.time() * 1000)) - oldtime > 1000 & serConn:
oldtime = time.time()
thread = Thread(target = upload, args = (stream.read(), ))
thread.start()
thread.join()
上传功能:
def upload(img):
image = vision_client.image(content=img)
# Performs label detection on the image file
labels = image.detect_labels()
for label in labels:
if label.description == "signage":
ser.write("0")
print("Stop")
else:
ser.write("1")
答案 0 :(得分:0)
我认为问题出在join
函数调用上。这将导致调用块停止并等待线程终止。另外,我建议使用模块time
在镜头之间休眠主线程。试试这个:
import time
while True:
if serConn:
thread = Thread(target = upload, args = (stream.read(), ))
thread.start()
time.sleep(1)