!! This tutorial was designed to help you with installation and configuration of OpenCV4Android SDK.
OpenCV4Android SDK
This tutorial was designed to help you with installation and configuration of OpenCV4Android SDK.
This guide was written with MS Windows 7 in mind, though it should work with GNU Linux and Apple Mac OS as well.
This tutorial assumes you have the following software installed and configured:
JDK
Android SDK and NDK
Eclipse IDE
ADT and CDT plugins for Eclipse
If you need help with anything of the above, you may refer to our Introduction into Android Development guide.
If you encounter any error after thoroughly following these steps, feel free to contact us via OpenCV4Android discussion group or OpenCVQ&A forum. We’ll do our best to help you out.
Tegra Android Development Pack users
You may have used Tegra Android Development Pack (TADP) released by NVIDIA for Android development environment setup.
Beside Android development tools the TADP 2.0 includes OpenCV4Android SDK, so it can be already installed in your system and you can skip to Running OpenCV Samples section of this tutorial.
More details regarding TADP can be found in the Introduction into Android Development guide.
General info
OpenCV4Android SDK package enables development of Android applications with use of OpenCV library.
The structure of package contents looks as follows:
OpenCV-2.4.9-android-sdk
|_ apk
| |_ OpenCV_2.4.9_binary_pack_armv7a.apk
| |_ OpenCV_2.4.9_Manager_2.18_XXX.apk
|
|_ doc
|_ samples
|_ sdk
| |_ etc
| |_ java
| |_ native
| |_ 3rdparty
| |_ jni
| |_ libs
| |_ armeabi
| |_ armeabi-v7a
| |_ x86
|
|_ LICENSE
|_ README.android
sdk folder contains OpenCV API and libraries for Android:
sdk/java folder contains an Android library Eclipse project providing OpenCV Java API that can be imported into developer’s workspace;
sdk/native folder contains OpenCV C++ headers (for JNI code) and native Android libraries (*.so and *.a) for ARM-v5, ARM-v7a and x86 architectures;
sdk/etc folder contains Haar and LBP cascades distributed with OpenCV.
apk folder contains Android packages that should be installed on the target Android device to enable OpenCV library access via OpenCV Manager API (see details below).
On production devices that have access to Google Play Market (and Internet) these packages will be installed from Market on the first start of an application using OpenCV Manager API. But devkits without Market or Internet connection require this packages to be installed manually. Install the Manager.apk and optional binary_pack.apk if it needed. See How to select the proper version of OpenCV Manager for details.
Note
Installation from Internet is the preferable way since OpenCV team may publish updated versions of this packages on the Market.
samples folder contains sample applications projects and their prebuilt packages (APK). Import them into Eclipse workspace (like described below) and browse the code to learn possible ways of OpenCV use on Android.
doc folder contains various OpenCV documentation in PDF format. It’s also available online at http://docs.opencv.org.
Note
The most recent docs (nightly build) are at http://docs.opencv.org/2.4. Generally, it’s more up-to-date, but can refer to not-yet-released functionality.
Starting from version 2.4.3 OpenCV4Android SDK uses OpenCV Manager API for library initialization. OpenCV Manager is an Android service based solution providing the following benefits for OpenCV applications developers:
Compact apk-size, since all applications use the same binaries from Manager and do not store native libs within themselves;
Hardware specific optimizations are automatically enabled on all supported platforms;
Automatic updates and bug fixes;
Trusted OpenCV library source. All packages with OpenCV are published on Google Play;
For additional information on OpenCV Manager see the:
Manual OpenCV4Android SDK setup
Get the OpenCV4Android SDK
Go to the OpenCV download page on SourceForge and download the latest available version. Currently it’s OpenCV-2.4.9-android-sdk.zip.
Create a new folder for Android with OpenCV development. For this tutorial we have unpacked OpenCV SDK to the C:\Work\OpenCV4Android\directory.
Note
Better to use a path without spaces in it. Otherwise you may have problems with ndk-build.
Unpack the SDK archive into the chosen directory.
You can unpack it using any popular archiver (e.g with 7-Zip):
On Unix you can use the following command:
unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip
Import OpenCV library and samples to the Eclipse
Start Eclipse and choose your workspace location.
We recommend to start working with OpenCV for Android from a new clean workspace. A new Eclipse workspace can for example be created in the folder where you have unpacked OpenCV4Android SDK package:
Import OpenCV library and samples into workspace.
OpenCV library is packed as a ready-for-use Android Library Project. You can simply reference it in your projects.
Each sample included into the OpenCV-2.4.9-android-sdk.zip is a regular Android project that already references OpenCV library. Follow the steps below to import OpenCV and samples into the workspace:
Note
OpenCV samples are indeed dependent on OpenCV library project so don’t forget to import it to your workspace as well.
Right click on the Package Explorer window and choose Import... option from the context menu:
In the main panel select General ‣ Existing Projects into Workspace and press Next button:
In the Select root directory field locate your OpenCV package folder. Eclipse should automatically locate OpenCV library and samples:
Click Finish button to complete the import operation.
After clicking Finish button Eclipse will load all selected projects into workspace, and you have to wait some time while it is building OpenCV samples. Just give a minute to Eclipse to complete initialization.
Warning
After the initial import, on a non-Windows (Linux and Mac OS) operating system Eclipse will still show build errors for applications with native C++ code. To resolve the issues, please do the following:
Open Project Properties -> C/C++ Build, and replace “Build command” text to "${NDKROOT}/ndk-build" (remove .cmd at the end).
Note
In some cases the build errors don’t disappear, then try the following actions:
- right click on OpenCV Library project -> Android Tools -> Fix Project Properties, then menu Project -> Clean... -> Clean all
- right click on the project with errors -> Properties -> Android, make sure the Target is selected and is Android 3.0 or higher
- check the build errors in the Problems view window and try to resolve them by yourselves
Once Eclipse completes build you will have the clean workspace without any build errors:
Running OpenCV Samples
At this point you should be able to build and run the samples. Keep in mind, that face-detection and Tutorial 2 - Mixed Processing include some native code and require Android NDK and NDK/CDT plugin for Eclipse to build working applications. If you haven’t installed these tools, see the corresponding section of Introduction into Android Development.
Warning
Please consider that some samples use Android Java Camera API, which is accessible with an AVD. But most of samples use OpenCV Native Camera which may not work with an emulator.
Note
Recent Android SDK tools, revision 19+ can run ARM v7a OS images but they available not for all Android versions.
Well, running samples from Eclipse is very simple:
Connect your device with adb tool from Android SDK or create an emulator with camera support.
- See Managing Virtual Devices document for help with Android Emulator.
- See Using Hardware Devices for help with real devices (not emulators).
Select project you want to start in Package Explorer and just press Ctrl + F11 or select option Run ‣ Run from the main menu, or click Run button on the toolbar.
Note
Android Emulator can take several minutes to start. So, please, be patient.
On the first run Eclipse will ask you about the running mode for your application:
Select the Android Application option and click OK button. Eclipse will install and run the sample.
Chances are that on the first launch you will not have the OpenCV Manager package installed. In this case you will see the following message:
To get rid of the message you will need to install OpenCV Manager and the appropriate OpenCV binary pack. Simply tap Yes if you haveGoogle Play Market installed on your device/emulator. It will redirect you to the corresponding page on Google Play Market.
If you have no access to the Market, which is often the case with emulators - you will need to install the packages from OpenCV4Android SDK folder manually. See How to select the proper version of OpenCV Manager for details.
1
<Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk
Note
armeabi, armv7a-neon, arm7a-neon-android8, mips and x86 stand for platform targets:
- armeabi is for ARM v5 and ARM v6 architectures with Android API 8+,
- armv7a-neon is for NEON-optimized ARM v7 with Android API 9+,
- arm7a-neon-android8 is for NEON-optimized ARM v7 with Android API 8,
- mips is for MIPS architecture with Android API 9+,
- x86 is for Intel x86 CPUs with Android API 9+.
If using hardware device for testing/debugging, run the following command to learn its CPU architecture:
adb shell getprop ro.product.cpu.abi
If you’re using an AVD emulator, go Window > AVD Manager to see the list of availible devices. Click Edit in the context menu of the selected device. In the window, which then pop-ups, find the CPU field.
You may also see section How to select the proper version of OpenCV Manager for details.
When done, you will be able to run OpenCV samples on your device/emulator seamlessly.
Here is Sample - image-manipulations sample, running on top of stock camera-preview of the emulator.
What’s next
Now, when you have your instance of OpenCV4Adroid SDK set up and configured, you may want to proceed to using OpenCV in your own application. You can learn how to do that in a separate Android Development with OpenCV tutorial
!! This tutorial was designed to help you with installation and configuration of OpenCV4Android SDK.的更多相关文章
- installation and configuration of OpenCV4Android SDK
http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html#running-opencv ...
- Struts 2 Tutorial
Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applicati ...
- Selenium tutorial/overview
copy from: http://www.jroller.com/selenium/ Selenium tutorial/overview 1. Selenium Introduction 2. S ...
- PHP fSQL Tutorial
PHP fSQL Tutorial This tutorial is designed to give a brief overview of the PHP fSQL API since versi ...
- Webpack 4 Tutorial: from 0 Conf to Production Mode
webpack 4 is out! The popular module bundler gets a massive update. webpack 4, what's new? A massive ...
- LR11
HP LoadRunner Readme for the Windows operating system Software version: 11.00 Publication date: Octo ...
- (转)单机上配置hadoop
哈哈,几天连续收到百度两次电话,均是利好消息,于是乎不知不觉的自己的工作效率也提高了,几天折腾了好久终于在单机上配置好了hadoop,然后也成功的运行了一个用例,耶耶耶耶耶耶. 转自:http://w ...
- Learn golang: Top 30 Go Tutorials for Programmers Of All Levels
https://stackify.com/learn-go-tutorials/ What is Go Programming Language? Go, developed by Google in ...
- Learn nodejs: Tutorials for Programmers of All Levels, 程序员每个阶段的示例
https://stackify.com/learn-nodejs-tutorials/ What is Node.js? Node.js can be defined as a dynamic, c ...
随机推荐
- C#打印页面的纸张设置问题Spread表格控件
这段时间学习spread控件,用到打印设置上边,其他的设置都还好说,但是打印纸张的大小,纸张类型等把我折腾的够呛,找了半天才找到,记录下来备查. 1.打印纸张类型: System.Drawing.Pr ...
- css3动画实例
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 【BZOJ】【1028】【JSOI2007】麻将
暴力/模拟 $n\leq400$,嗯……这是一个很小的数据范围= = 判断一副牌是不是听牌并求出听什么牌太麻烦了,干脆我们直接判是不是胡牌好了~ 枚举胡的是哪张牌,然后判一下加上这张牌后是否能胡. 算 ...
- Matlab中颜色线形和形状
1.颜色字符串有'c', 'm', 'y', 'r', 'g', 'b', 'w',和'k'.分别表示青,红紫,黄,红,绿,白和黑. 2.线型字符串有:'-' 为实线, '--' 为虚线, ':' 为 ...
- frequentism-and-bayesianism-chs-iii
frequentism-and-bayesianism-chs-iii 频率主义 vs 贝叶斯主义 III:置信(Confidence)与可信(Credibility),频率主义与科学,不能混为一 ...
- Sqli-labs less 50
Less-50 从本关开始我们开始进行order by stacked injection! 执行sql语句我们这里使用的是mysqli_multi_query()函数,而之前我们使用的是mysqli ...
- Linuxshell脚本之if条件判断
IF条件判断 .基本语法: if [ command ]; then 符合该条件执行的语句 fi .扩展语法: if [ command ];then 符合该条件执行的语句 elif [ comman ...
- vi/vim使用指北 ---- Moving Around in a Hurry
上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标. vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但 ...
- Selenium中expected_conditions下text_to_be_present_in_element_value方法的使用
text_to_be_present_in_element: 判断某个元素中的text是否包含了预期的字符串 text_to_be_present_in_element_value: 判断某个元素中的 ...
- 转载 Memcached BinaryProtocol incr指令内存泄露的bug
缘起 最近有个分布式限速的需求.支付宝的接口双11只允许每秒调用10次. 单机的限速,自然是用google guava的RateLimiter. http://docs.guava-libraries ...