Отправить кадр, обнаруженный с веб-камеры, с помощью сокетов PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Отправить кадр, обнаруженный с веб-камеры, с помощью сокетов Python

Сообщение Anonymous »


Я отправлю кадр, обнаруженный веб-камерой, на другое устройство. Это устройство проверит объекты с помощью YOLOv5 и отправит количество имеющихся объектов на устройство с камерой. Я начал с отправки изображения на другое устройство, но у меня возникли проблемы с сокетами Python.

Код сервера:

импортировать сокет импортировать cv2 импорт ио импортировать numpy как np из изображения импорта PIL ХОСТ = "127.0.0.1" ПОРТ = 65432 s = сокет.сокет(сокет.AF_INET, сокет.SOCK_STREAM) s.bind((ХОСТ, ПОРТ)) с.прослушивать() конн, адрес = s.accept() print(f"Подключено через {адрес}") камера = cv2.VideoCapture(0) пока правда: ret, кадр = camera.read() кадр = cv2.resize(frame, (640, 480)) рамка = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) рамка = Image.fromarray(frame) Frame_bytes = io.BytesIO() Frame.save(frame_bytes, format="JPEG") Frame_bytes = Frame_bytes.getvalue() conn.sendall(frame_bytes) данные = conn.recv(4096) распечатать (данные) если cv2.waitKey(1) & 0xFF == ord("q"): перерыв Код клиента:

импортировать сокет время импорта импортировать cv2 импорт ио импортировать numpy как np из изображения импорта PIL импортировать случайный ХОСТ = "127.0.0.1" ПОРТ = 65432 s = сокет.сокет(сокет.AF_INET, сокет.SOCK_STREAM) s.connect((ХОСТ, ПОРТ)) пока правда: данные = s.recv(8192) кадр = Image.open(io.BytesIO(данные)) кадр = np.array(кадр) рамка = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR) cv2.imshow("рамка", рамка) cv2.waitKey(1) s.sendall(b"ОК") Когда я запустил эти коды, client.py возвращает ошибку:

Traceback (самый последний вызов — последний): Файл «C:\Users\ASUS\Desktop\test\client.py», строка 18, в кадр = np.array(кадр) ^^^^^^^^^^^^^^^^ Файл «C:\Users\ASUS\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL\Image.py», строка 696, в __array_interface__ новые["данные"] = self.tobytes() ^^^^^^^^^^^^^^^ Файл «C:\Users\ASUS\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL\Image.py», строка 754, в тобайтах self.load() Файл «C:\Users\ASUS\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL\ImageFile.py», строка 266, в загрузке поднять OSError (сообщение) OSError: файл образа усечен (31 байт не обработан) PS C:\Users\ASUS\Desktop\test> python client.py Traceback (последний вызов последний): Файл «C:\Users\ASUS\Desktop\test\client.py», строка 18, в кадр = np.array(кадр) ^^^^^^^^^^^^^^^^ Файл «C:\Users\ASUS\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL\Image.py», строка 696, в __array_interface__ новые["данные"] = self.tobytes() ^^^^^^^^^^^^^^^ Файл «C:\Users\ASUS\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL\Image.py», строка 754, в тобайтах self.load() Файл «C:\Users\ASUS\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL\ImageFile.py», строка 266, в загрузке поднять OSError (сообщение) OSError: файл образа усечен (35 байт не обработаны) Я попробовал изменить размер буфера приема, но не смог решить проблему.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»