Как стать автором
Обновить

Комментарии 13

А какие конкретно применения есть у этой библиотеки? Практические, а не теоретические.
OpenCV — это библиотека алгоритмов компьютерного зрения, обработки изображений, алгоритмов общего назначения. OpenCV не предлагает готовых решений, например, для распознавания автомобильных номеров, только хорошие инструменты, которые сами по себе с искусственным интеллектом часто не связаны. В разработанной вами последовательности вы применяете эти инструменты, проводите обработку изображений с целью распознать что-либо, выделить и т.д.
В данной статье речь пойдёт о встраивании библиотеки компьютерного зрения OpenCV в проект приложения для Android.

Всё? Это всё что можно сказать про OpenCV, о котором вы пишете статью?

Вот статья про подключение OpenCV для андроида через градл, с помощью менеджера
habrahabr.ru/post/217377

Автор приводит некоторые вырезки с документации, отсюда
According to this approach all OpenCV binaries are included into your application package. It is designed mostly for development purposes. This approach is deprecated for the production code, release package is recommended to communicate with OpenCV Manager via the async initialization described above.

Что вы скажете об этом?
У меня не было цели подробно рассказывать про OpenCV. Я лишь хотел показать, что подобные технологии можно и нужно использовать на мобильных устройствах и объяснил, как это сделать. По поводу статической инициализации я высказался в заключении, однако кому-нибудь может показаться полезным именно этот способ. Нужна хорошая инструкция, я в своё время потратил несколько дней, чтобы заставить работать приложение со статической инициализацией.
А можно поступить проще и собирать проект с помощью Maven
При выпуске приложения, например, в Google Play, лучше использовать OpenCV Manager.

Не знаю, что курили разработчики OpenCV, но заставлять пользователя качать какие-то библиотеки о которых он первый раз в жизни слышит для того чтобы он мог распознавать котиков с помощью твоего приложения — это слишком.
Я встраиваю всю библиотеку в свое приложение. Вот за этот совет
Следует отметить, что не нужно упаковывать статические библиотеки OpenCV (расширение .a) в .apk и хранить их в проекте.

Большое спасибо!
Я так и не понял, в чем проблема статической инициализации? Я могу использовать ее в Релизе приложения? Ну я уж точно не хочу просить пользователей что то скачать и т.д.
Вы можете использовать статическую инициализацию, если не хотите принуждать пользователей дополнительно устанавливать OpenCV Manager. Это возможно даже при публикации приложения в Google Play. При разработке приложения в Android Studio можно с помощью Gradle при сборке генерировать несколько .APK файлов под различные архитектуры микропроцессоров и использовать Multiple APK в Google Play (подробности). Можно поступить так, как описано в статье, при этом итоговый .APK файл будет содержать библиотеки под все архитектуры и выбор будет происходить автоматически. OpenCV Manager даёт некоторые преимущества (подробности), но лично я считаю, что без этого можно вполне обойтись.
Спасибо за Ваш ответ. И еще вопрос, а как Вы боролись с «Пьяной камерой» в Андроид? Я ни как не могу правильно настроить работу фронтальной камеры в «Портретном» режиме
Признаюсь, с этим я никак не боролся. Недавно я начал проектировать довольно крупный проект под Android с использованием OpenCV, при этом я решил отказаться от захвата изображения с камеры средствами данной библиотеки. Я решил поступить по-другому: код приложения для доступа к камере и захвата изображения будет написан с использованием стандартного API Android, а обработкой кадров займётся OpenCV. Для этого существуют функции, позволяющие преобразовать изображения Android в «родные» примитивы OpenCV. Такой подход предпочтителен в том числе потому, что существует подробная документация по работе с камерой в Android, и заставить работать камеру так, как нужно, довольно легко.
Очень хотелось бы получить от Вас новую статью по этому поводу.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации