На днях наткнулся на интересную статью в которой разработчики перенесли возможности библиотеки opencv в телефон на основе операционной системы Android http://code.google.com/p/android-opencv/wiki/CVCamera. Особенность этого проекта в том, что у авторов получилось создать готовое приложение, на которое можно посмотреть.
Я решил повторить данный эксперимент и собственно что получилось.
Далее я опишу детально как надо собрать opencv под android.
Логическое отступление. Android - это Java подобная оболочка на ядре Linux. Для того чтобы использовать все функции opencv (которая написана на C++), нам во первых собрать ее под Linuxом или эмулятором Linuxа с использованием инструментов, которые нам предоставил Гугл.
Собирать мы будем ее в динамические библиотеки (*.so) и будем использовать через враперы JNI. (Java Native Interface).
Шаг 0. Необходимый инструментарий.
Если Вы работаете под Linux то вам не нужно будет устанавливать Cygwin.
0.1. Загружаем эмулятор линукса Cygwin (http://www.cygwin.com/)
0.2. Выбираем путь установки у меня он будет C:/Develop/cygwin
Во время установки он спросит какие компоненты нам будут нужны:
make - сборщик
cmake - сборщик
g++ - компилятор для c++
gcc - компилятор для c
swig - инструмент для создания интерфейсов
Если сразу компоненты не установились запустите установщик еще раз он будет дополнять программы.
0.3. Нам надо загрузить android-ndk. Обычный нам не будет подходить т.к. обычный с сайта Гугл не умеет компилировать с++. По этому нам необходимо загрузить http://crystax.net/android/ndk-r4.php. Загружаем на компьютер и распаковываем в каталог: C:/Develop/cygwin/home/username, где username - имя вашего пользователя у меня SibAS.
Нам необходимо добавить данный каталог к системному пути:
для этого
Мой компьютер> Свойства> Дополнительные параметры системы> Закладка дополнительно> Переменные среды
Добавим переменную PATH со значением C:\Develop\cygwin\home\SibAS\android-ndk-r4-crystax;C:\Develop\cygwin\bin;
Шаг 1. Запускаем Cygwin и проверяем как все ли работает.
cd android-ndk-r4-crystax
cd samples
cd hello-jni
ndk-build
Экран того что мы должны увидеть.
Если возникли ошибки они могут быть из-за путей (проверьте PATH) наберите в echo $PATH если все пути совпадают то ошибке в конфигурации cygwin - он напишет каких приложений не хватает и вы сможете их загрузить.
Отлично! Мы смогли собрать тестовое приложение!
Теперь очередь за opencv.
Шаг 2. Нам надо загрузить исходный код проекта. С репозитория http://android-opencv.googlecode.com/svn/trunk/. Воспользуемся svn клиентом http://tortoisesvn.tigris.org/ для загрузки репозитория (с помощью удобного интерфейса) в папку C:/Develop/cygwin/home.
Отлично теперь в папке C:/Develop/cygwin/home лежат следующие папки: android-ndk-r4-crystax opencv samples (последнее две из проекта)
В Cygwin переходим в папку opencv
cd opencv
и запускаем сборку...
sh build.sh
Собираться все это добро будет порядка часа так что можно посмотреть фильм или почитать книжку. Когда все готово мы увидим следующий экран:
OpenCV собрано!
Шаг 3. Собираем пример
cd samples (которые мы загрузили с проектом а не с android-ndk)
cd CVCamera
sh build.sh
Проект собран в следующем сообщении будет описано как запустить его из eclipse
Комментариев нет:
Отправить комментарий