Как через OpenCV преобразовать кадр в jpg-формат, не записывая его на диск в Python

Требуется взять изображение с веб-камеры, и передать его клиенту.

Имеется такой Python-код:

async def servo(websocket, path):
    print("Server is running...")

    # хватаем изображение с веб-камеры
    cap = cv2.VideoCapture(-1)

    # print(cap.isOpened())
    while cap.isOpened():
        ret, frame = cap.read()

        print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
        print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        cv2.imshow('frame', gray)

        # data = await websocket.recv(frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            cap.release()
            cv2.destroyAllWindows()

Однако, нужно преобразовывать frame (кадр) в jpg, не сохраняя на диск, и сразу преобразовать его в бинарный код, чтобы передать уже клиенту, и таким образом, с помощью js обработать на стороне клиента. В итоге должна получится обычная трансляция видео с веб-камеры (вебка на другом устройстве, на raspberry pi4) по локальной сети на html+js страничку в браузере


Ответы (0 шт):