Проблема с отправкой захвата изображения с камеры пи через UDPSocket - PullRequest
0 голосов
/ 21 октября 2019

Я хочу отправить снимок с камеры Pi через UDPSocket. Я использую функцию sendto. Но он продолжает получать «TypeError: ожидается str, bytes или bytearray, а не tuple», хотя я изменил изображения на байты. Вот мой код:

import io
import time
from picamera.array import PiRGBArray
from picamera import PiCamera
import numpy as np
import cv2
import socket,traceback
host=""
port = 5555
    #socketsever create
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
print("socket create")
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
s.bind((host,port))
print("bind success")
camera=PiCamera()
camera.resolution=(640,480)
capture=PiRGBArray(camera,size=(640,480))
while(1):
    message,add=s.recvfrom(1024)
    print(message)
    camera.capture(capture,format='bgr')
    capture.seek(0)
    image_bytes=capture.array
    image_bytes=cv2.imencode('.jpg',image_bytes)[1].tostring()

    print(type(image_bytes))
    s.sendto(image_bytes,(add,port))
    capture.seek(0)
    capture.truncate(0)

это результат:

socket create
bind success
b'hello'
<class 'bytes'>
Traceback (most recent call last):
  File "camera1.py", line 31, in <module>
    s.sendto(image_bytes,(add,port))
TypeError: str, bytes or bytearray expected, not tuple

Помогите мне, пожалуйста

...