Здравствуйте, кто нибудь конвертировал андроидовский NV21 в QImage(rgb32) или лучше

в cv::mat? может у кого сохранились куски кода валидной конвертации, много перепробовал но всегда какая то фигня на выходе

20 ответов

30 просмотров

Если в коде много работы с виде фреймами почему сразу не втащить sws_scale

Ivan-Ярмолович Автор вопроса
🇮🇹 Yury
Если в коде много работы с виде фреймами почему ср...

Спасибо, похоже это то, что нужно, но пока непонято как использовать, в гугле много ответов где люди yuv420(nv21) преобразовывают в rgb юзая sws_scale но там какая то магия, буду думать как с QVideoFrame такое сделать

Ivan Ярмолович
Спасибо, похоже это то, что нужно, но пока непонят...

Никакой магии там нет. Берем nv12 буффер и черз sws scale конвертим прямо в qvideo frame

Ivan-Ярмолович Автор вопроса
🇮🇹 Yury
Никакой магии там нет. Берем nv12 буффер и черз s...

У меня с камеры фреймы приходят, и мне нужно их скормить opencv чтобы распознать точки и лицо, фреймы приходят в NV21, вот я и ищу способ из QVideoFrame NV21 конвертнуть в cv::mat или QImage, я с nv12 видел что то, но с nv21 только громоздкие решения которые при потоковом видео сьедают память и лагают

Ivan Ярмолович
У меня с камеры фреймы приходят, и мне нужно их ск...

я вот эту функцию просто вызываю: qt_imageFromVideoFrame есть в заголовке такое у меня: extern void QT_FASTCALL qt_convert_NV21_to_ARGB32(const QVideoFrame&, uchar*); #if !(QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) extern QImage qt_imageFromVideoFrame(const QVideoFrame &f); #endif Раньше видимо использовал qt_convert_NV21_to_ARGB32, а потом заменил со второй

Ivan-Ярмолович Автор вопроса
Sergey eSKon
я вот эту функцию просто вызываю: qt_imageFromVide...

Ого, я о таком вообще не знал, спасибо, попробую

Ivan Ярмолович
Ого, я о таком вообще не знал, спасибо, попробую

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

Ivan-Ярмолович Автор вопроса
Sergey eSKon
ну его нет в доках, насколько я знаю. Так что учит...

Главное лицензию не нарушить, они ж запрещают исходники менять

Ivan Ярмолович
Главное лицензию не нарушить, они ж запрещают исхо...

так вы не меняйте их исходники, скопируйте код, да назовите эту функцию myCoolConverter_noItsNotFromQt

Sergey eSKon
так вы не меняйте их исходники, скопируйте код, да...

Это тоже нарушение лицензии, насколько я знаю

Ivan-Ярмолович Автор вопроса
Serhii Olendarenko
Это тоже нарушение лицензии, насколько я знаю

Вот я этого и опасаюсь, читал что с исходниками вообще делать ничего нельзя, ни изменять ни брать

Ivan Ярмолович
Вот я этого и опасаюсь, читал что с исходниками во...

вы не поняли. Импорт функции ничего с исходниками не делает. Речь о бинарной совместимости. то есть вы не сможете подменить qt dll или so 5.5 на, скажем 5.6

Serhii Olendarenko
Это тоже нарушение лицензии, насколько я знаю

ну мы же никому не расскажем, что Ваня так сделал 😉

Ivan-Ярмолович Автор вопроса
Sergey eSKon
ну мы же никому не расскажем, что Ваня так сделал ...

Впрыынцыпе да, это не всплывет, жесть я задолбался с qt под андроид и его болячками, то большие изображения, то этот NV21 который хрен конвертнешь, попробую сейчас победить все таки

Ivan Ярмолович
Впрыынцыпе да, это не всплывет, жесть я задолбался...

лучше всё-таки сделайте с импортом, это лучше по многим причинам. Если они что-то улучшат, исправят, то вы обновив кьют автоматом это улучшение получите, а так вам придётся следить за изменениями. Двоичная совместимость на андроиде вам вряд ли понадобится. Да и смысл писать то, что уже написано

Ivan-Ярмолович Автор вопроса
Sergey eSKon
лучше всё-таки сделайте с импортом, это лучше по м...

Так я ж в любом случае буду допиливать и релизить на qt 5.15, разве какие то изменения коснутся релизной версии? Они ж 6 qt занимаются уже, на него ещё рано лезть

Ivan Ярмолович
Так я ж в любом случае буду допиливать и релизить ...

импорт просто делайте и используйте qt_imageFromVideoFrame И, кстати, никаких особых проблем на андроиде сейчас нет. Несколько лет назад когда они только запустили мобильную версию их было действительно много, до сих пор в коде периодически костыли вылавливаю и заменяю нормальным кодом. А с новым проектом никаких особых проблем не должно возникать

Ivan-Ярмолович Автор вопроса
Sergey eSKon
импорт просто делайте и используйте qt_imageFromVi...

ну у меня была проблема с перебросом каскадов хаара в андроид, это обычный xml файл, в студии я мог бы в ресурсы поместить и потом просто достать в рантайме, а тут пришлось искать writable location и в итоге они сохраняются не в папку с проектом а в downloads и оттуда запускаются, ну и + рекламу если нужно встроить в приложение приходится костыльные либы с кучей jni брать, что тоже не очень благоприятно сказывается на размере и быстродействии приложения

Ivan Ярмолович
ну у меня была проблема с перебросом каскадов хаар...

ну так это не проблемы кьюта, это просто задачи которые так или иначе всё равно пришлось бы решать. А если файл неизменяемый, то поместить его в ресурсы не проблема. Другое дело, что какая-то стороняя библиотека из ресурсов читать не сможет - ну так это проблема библиотеки. В общем это не недоработки команды кьюта

Ivan-Ярмолович Автор вопроса
Sergey eSKon
импорт просто делайте и используйте qt_imageFromVi...

а можете пожалуйста сказать что именно нужно импортнуть? я просто extern функции добавил оно ругается "storage class specified for a member declaration"

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта