0
PythonソケットとOpenCVを使用してHTTP経由でWebcamイメージを提供しようとしていますが、正しく動作しません。サーバーはWebcamからキャプチャされた適切なJPEGイメージを提供しません。いくつかのバイナリ配列のみを表示します。 HTTP経由のPython Webcamイメージサーバーで画像が表示されない
import io
import socket
import atexit
from cv2 import *
from PIL import Image
def camServer():
while True:
print("wait...")
conn, addr = server_socket.accept()
if conn:
print(conn)
print(addr)
connection = conn.makefile('wb')
break
print("Connecting")
try:
cam = VideoCapture(0)
s, imgArray = cam.read()
if s:
atexit.register(onExit)
img = io.BytesIO()
imgPIL = Image.fromarray(imgArray)
imgPIL.save(img, format="jpeg")
img.seek(0)
connection.write(img.read())
img.seek(0)
img.truncate()
finally:
print("close connection")
connection.close()
def onExit():
connection.close()
server_socket.close()
print("exit")
server_socket = socket.socket()
server_socket.bind(('0.0.0.0', 8000))
server_socket.listen(0)
server_socket.setblocking(1)
while True:
camServer()
私はここから元のソースコードを発見:Python socket server to send camera image to clientと私の代わりにPICameraのOpenCVのを使用するように変更しました。
を!今のところ、生のイメージだけが提供されます.HTTPヘッダーやレスポンスが適切にフォーマットされているかのように、httpに必要なものをすべて送信する必要があります。 –