Конвертировать данные BLOB-объектов из JavaScript для чтения с использованием OpenCV в Python - PullRequest
0 голосов
/ 09 ноября 2018

Я использую javascript для отправки видео с клиента на внутренний сервер с помощью веб-сокета. Я конвертирую видео в файлы BLOB-объектов и отправляю его. Функция преобразования изображения в блоб приведена ниже.

function dataURItoBlob(dataURI) {
    // convert base64 to raw binary data held in a string
    var byteString = atob(dataURI.split(',')[1]);

    // separate out the mime component
    var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];

    // write the bytes of the string to an ArrayBuffer
    var arrayBuffer = new ArrayBuffer(byteString.length);
    var _ia = new Uint8Array(arrayBuffer);
    for (var i = 0; i < byteString.length; i++) {
        _ia[i] = byteString.charCodeAt(i);
    }
    var dataView = new DataView(arrayBuffer);
    var blob = new Blob([dataView], { type: mimeString });
    return blob;
}

Теперь мне нужно преобразовать изображение, полученное обратно в серверную часть Python, в массив numpy и обработать его с помощью opencv. Как я могу конвертировать Blob в массив изображений в Python.

1 Ответ

0 голосов
/ 11 января 2019

Данные BLOB-объектов будут храниться в request.body (я использую tornado в качестве каркаса веб-приложения) с типом bytes.

arr = np.asarray( bytearray( request.body ,'utf-8'), dtype = np.uint8 )
bgr_image = cv2.imdecode( arr, -1 ) # load it as it is

Это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...