Как преобразовать byte [] в Mat в java

Я работаю над DJI Mobile SDK в студии Android. Я хочу применить фильтры Opencv к прямой трансляции видео с фантомной камеры дрона. Прямая трансляция видео находится в байтовом буфере [] videoBuffer, как показано в коде.

mReceivedVideoDataCallBack = new VideoFeeder.VideoDataCallback() {
        @Override
        public void onReceive(byte[] videoBuffer, int size) {
            if (mCodecManager != null) {
                mCodecManager.sendDataToDecoder(videoBuffer, size);
            }
        }
    }; 

Я думаю, что один из способов - сначала преобразовать byte [] videoBuffer в Mat в java, а затем передать адрес Mat в класс extern C.

Во-вторых, передать byte [] videoBuffer в extern C как jbyteArray, а затем преобразовать этот jbyteArray в Mat в C.

Я не знаю, какую роль играет размер int в коде.

Я столкнулся с проблемой в обоих. Любая помощь будет оценена по достоинству. Я застрял в этом дерьме больше месяца. :(

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
156
1

Ответы 1

videoBuffer может содержать недопустимые байты, поэтому нам нужно использовать 'size', чтобы указать допустимую часть, что означает, что допустимые байты начинаются с videoBuffer [0] и заканчиваются последним байтом: videoBuffer [size-1]

Другие вопросы по теме