Преобразовать изображение в двоичный поток

У моего приложения есть две стороны, с одной стороны я использую C ++ для чтения кадров с камеры, используя EBUS SDK от Pleora. Когда этот поток принимается впервые, перед тем как я преобразую буфер в изображение, я могу прочитать поток по 16 бит за раз, чтобы выполнить некоторые вычисления для каждого пикселя, то есть для каждого пикселя существует 16-битный фрагмент данных ,

Теперь вторая половина - это веб-приложение Django, где я также представляю этот видеовыход, на этот раз через поток ffmpeg, nginx, hls. Когда пользователь нажимает на видео, я хочу иметь возможность взять текущий кадр и координаты своего клика и выполнить те же вычисления, что и выше, в части C ++.

Прямо сейчас я использую html5 canvas для захвата кадра и используюcanvas.toDataURL() чтобы преобразовать кадр в закодированное изображение base64, я передаю изображение base64, координаты и размеры кадра в python через AJAX.

В Python я пытаюсь манипулировать этим закодированным в base64 изображением таким образом, чтобы получить 16 бит на пиксель. На данный момент я делаю следующее:

pos = json.loads(request.GET['pos'])
str_frame = json.loads(request.GET['frame'])
dimensions = json.loads(request.GET['dimensions'])

pixel_index = (dimensions['width'] * pos['y']) + pos['x'] + 1

b64decoded_frame = base64.b64decode(str_frame.encode('utf-8'))

Тем не менее, вb64decoded_frame затем на изображении присутствуют пиксели, а целочисленные значения не так высоки, как ожидалось. Я проверил, и изображение не повреждено, так как я могу сохранить его в формате PNG.

Подводя итог, как мне преобразовать изображение base64 в сериализованный двоичный поток, где каждый пиксель представлен 16 битами.

ОБНОВИТЬ

Я забыл упомянуть, что я использую python3.2

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

Ответы на вопрос(1)

Ваш ответ на вопрос