Я хочу передать тепловое изображение на python, но я получаю только одно изображение, которое не обновляется. Термодатчик перестает обновлять температуру. Когда я удаляю cv2.imshow, все снова работает нормально. Термодатчик снова печатает текущую температуру. Я перепробовал множество других опций, например plt.imshow(cv2.cvtColor(image, cv2.BGR2RGB))
plt.show()
или то, что я прокомментировал ниже в своем коде, но, похоже, ничего не получалось. Смотри ниже мой код:
import socket
import pickle
import numpy as np
import cv2
from matplotlib import pyplot as plt
HEADERSIZE = 8355
host = ''
port = 1238
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
while True:
full_msg = b''
new_msg = True
while True:
msg = s.recv(8355)
if new_msg:
print(f"new message length: {msg[:HEADERSIZE]}")
msglen = int(msg[:HEADERSIZE])
new_msg = False
full_msg += msg
if len(full_msg) - HEADERSIZE == msglen:
print("Full msg recvd")
print(full_msg[HEADERSIZE:])
d = pickle.loads(full_msg[HEADERSIZE:])
print(d)
image = np.array(d)
image = cv2.resize(image, (300, 300))
print(image)
plt.imsave('color_img1.jpg', image)
img = cv2.imread('color_img1.jpg', 1)
#plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2HSV))
#plt.show()
#cv2.imshow('lmao', img)
#cv2.waitKey(0)
new_msg = True
full_msg = b''
print(full_msg)