该项目涉及一个客户端,该客户端通过套接字将相机供稿流式传输到服务器。服务器一直在等待用户输入,每当按下一个键时,客户端相机在特定时刻捕获的帧将被添加到一个numpy对象中。相同的流式代码如下:
流服务器-
import newObj from "./test.json"
流客户端-
import io
import os
import socket
import struct
import cv2
import numpy as np
from PIL import Image
server_socket = socket.socket()
server_socket.bind(('0.0.0.0', 6677))
server_socket.listen(0)
connection = server_socket.accept()[0].makefile('rb')
print('connection accepted')
try:
while True:
image_len = struct.unpack('<L', connection.read(struct.calcsize('<L')))[0]
if not image_len:
break
image_stream = io.BytesIO()
image_stream.write(connection.read(image_len))
image_stream.seek(0)
image = Image.open(image_stream)
print('Image is %dx%d' % image.size)
cv2.imshow('Pi', cv2.cvtColor(np.array(image), cv2.COLOR_BGR2RGB))
cv2.waitKey(1)
finally:
connection.close()
server_socket.close()
我无法为用户输入编写代码并保存部分项目。谷歌搜索使我转向异步I / O套接字,但尚不清楚它如何适合我的用例。