我的程序有问题我正在尝试发送从 MLX90640 收集的图像,这要归功于 Raspberry 在远程 PC 中处理它们。我使用 Raspberry 4 作为客户端,数据被路由到 PC。我正在使用套接字启动要接收图像和热图像的服务器。对于连接到相机的图像,我处理了它,我的问题是传输热图像。我目前正在使用与手机共享的 wifi 连接进行测试。如有必要,我将发布服务器代码。但是我有这个错误消息我尝试了很多解决方案但我没有找到它。实际上,Raspberry 是客户端,PC 是服务器。因此,我从树莓中收集数据,然后将其传输到 PC 进行处理。我想检测面部的温度,为此连接到 Raspberry 的 MLX90640 必须发送热数据。知道它收集了768个值,所以我希望将这些值传输或将最大值返回给PC。有人能帮我吗
import cv2
import io
import socket
import struct
import time
import pickle
import zlib
import adafruit_mlx90640
import board
import busio
import numpy as np
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('192.168.43.134', 8485))
connection = client_socket.makefile('wb')
i2c = busio.I2C(board.SCL, board.SDA, frequency=800000)
mlx = adafruit_mlx90640.MLX90640(i2c)
print("MLX addr detected on I2C")
print([hex(i) for i in mlx.serial_number])
mlx.refresh_rate = adafruit_mlx90640.RefreshRate.REFRESH_4_HZ
frame1 = np.zeros((24*32,))
#max_t=0
#moy = 0
#cam = cv2.VideoCapture(0)
#mlx.set(3, 32);
#mlx.set(4, 24);
img_counter = 0
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]
while True:
frame = mlx.getFrame(frame1)
result, frame = cv2.imencode('.jpg', frame, encode_param)
# data = zlib.compress(pickle.dumps(frame, 0))
data = pickle.dumps(frame, 0)
size = len(data)
print("{}: {}".format(img_counter, size))
client_socket.sendall(struct.pack(">L", size) + data)
img_counter += 1
```Traceback (most recent call last): File "client1.py", line 37, in <module> result, frame = cv2.imencode('.jpg', frame, encode_param) cv2.error: OpenCV(4.1.1) /home/pi/opencv/modules/imgcodecs/src/grfmt_base.cpp:145: error: (-10:Unknown error code -10) Raw image encoder error: Empty JPEG image (DNL not supported) in function 'throwOnEror'