Я хочу отправить снимок с камеры 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
Помогите мне, пожалуйста