OpenCV. Компьютерное зрение в Android.

OpenCV — это библиотека с открытым исходным кодом для реализации проектов, использующих алгоритмы компьютерного зрения. Библиотека имеет внушительный набор методов по работе с фото и видео, а также позволяет писать приложения с использованием технологий распознавания образов. Если Вам это интересно, то Добро пожаловать под кат.

В данной статье мы разбираем возможность использования библиотеки в OpenCV на платформе Android. Сама по себе библиотека написана на языке С и нам потребуется немного усилий и возможности Android NDK (Native Development Kit) для ее использования в своих андроид-проектах.

Первым делом перейдите по ссылке и скачайте версию OpenCV для Android.

opencv_downloads

Распакуйте куда-нибудь скачанный архив. Далее скопируйте папку из sdk/native/libs распакованного архива в app/src/main, создав там перед этим папку jniLibs.

opencv_android

Внутрь нее и нужно будет скопировать сами библиотеки:

opencv_android_2

Теперь для того чтобы использовать OpenCV в своем проекте необходимо выполнить File -> New -> Import Module и указать путь к sdk/java вашего распакованного архива:

opencv_android_module

У меня модуль уже был подключен, поэтому и вылезло предупреждение.

Теперь зайдите в файл build.gradle подключенного модуля и установите compileSdkVersion, buildToolsVersion, minSdkVersion и targetSdkVersion такими же, как в модуле вашего приложения. На этом подготовительные действия окончены и вы можете использовать возможности библиотеки OpenCV в своем приложении. Создадим тестовый пример, которые будет выводить видео с камеры на экран и при нажатии на переключатель менять режим съемки.

Создайте пустую активность и установите следующий макет:

В макете нет ничего особенного. Он содержит одну текстовую метку, переключатель для перехода в GrayMode и элемент JavaCameraView — на него будет выводиться картинка. Подробнее об этом классе здесь. Визуально наш макет будет выглядеть примерно так:

opencv_android_layout

Теперь перейдем к коду активности.

Наш класс должен реализовывать интерфейс

Его основной метод — onCameraFrame(CvCameraViewFrame inputFrame), возвращающий следующий кадр в виде объекта Mat, представляющий собой матрицу точек. В нем в зависимости от значения логической переменной isGrayMode мы возвращаем следующий кадр либо в режиме rgba, либо gray. Значение переменной isGrayMode меняем в обработчике переключателя SwitchCompat. Все остальное должно быть предельно понятно и не требовать серьезных разъяснений. Для получения дополнительной информации по классам библиотеки OpenCV обратитесь к официальной документации

Теперь запустите приложение и попробуйте менять режим съемки. Результат в обычном режиме:

opencv_android_screen1

В gray mode:

opencv_android_screen2

Ну вот и все. Теперь у Вас есть все необходимое для того, чтобы начать собственные проекты с использованием замечательной open-source библиотеки OpenCV! Читайте документацию, экспериментируйте. Все ограничивается только Вашим воображением!

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *