我的程序有问题,我正试图发送我从MLX90640收集的图像,感谢树莓在远程PC中处理它们。 我使用Raspberry 4作为客户端,数据被路由到PC。我使用套接字启动服务器,接收图像和热图像。对于连接到相机的图像,我负责处理,我的问题是传输热图像。我目前正在使用与手机共享的wifi连接进行测试。如有必要,我会发布服务器代码。但我有这个错误消息,我尝试了很多解决方案,但我没有找到它。事实上,树莓是客户端,PC是服务器。因此,我从树莓中收集数据,将其传输到PC机进行处理。我想检测面部温度,因此连接到覆盆子的MLX90640必须发送热量数据。知道它收集768个值,所以我想要这些值发送或返回到电脑的最大值。有人能帮我吗
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'
你在Raspberry pi能得到热量吗?我做了一个类似的方法,但我没有使用热相机。如果您的问题是无法将图像从raspberry pi传输到您的计算机
Raspberry pi的服务器代码
PC上的客户端代码
相关问题 更多 >
编程相关推荐