OpenCV初探:二、Android程序示例

这两篇日志源代码位置:

上文中,test.cpp可以看作是项目的UI部分。实际调用OpenCv实现功能的代码是cameraTest.h和cameraTest.cpp

本文我们将把UI实现从Windows平台替换成Android平台,功能实现则不变。由此在Android平台上实现这个示例程序

这是一个高效的开发方式:先在Windows平台上开发OpenCV功能模块,保持功能实现与UI实现分离。然后将功能模块迁移到Android平台,将UI实现替换成Android的实现。

这是一种建议的开发方式:在VS里面配置好JNI和OpenCV所需的包含目录,用VS开发C/C++模块。再用NDK生成so库,放进Android Studio工程里面。

0、下载Android版OpenCV SDK:https://sourceforge.net/projects/opencvlibrary/files/opencv-android/3.1.0/ -->  OpenCV-3.1.0-android-sdk.zip,并解压

1、配置JNI、NDK和OpenCV包含目录。由于我们不需要用VS编译,所以只许配置包含目录即可

E:\OpenCV-2.4.11-android-sdk\OpenCV-android-sdk\sdk\native\jni\include

(注意,OpenCV版本和NDK版本要对应,否则编译不过,例如OpenCV-2.4.11-android-sdk对应android-ndk-r10b)

E:\Program Files\Java\jdk1.7.0_79\include

E:\Program Files\Java\jdk1.7.0_79\include\win32

E:\android-ndk-r10b\platforms\android-19\arch-arm\usr\include

2、在VS里面完成C/C++模块编写

3、在Android Studio里面完成Android java代码的编写

4、将C/C++源码放在 Android项目根\app\jni 目录下,并在此目录下编写“Android.mk”和“Application.mk”文件,然后用NDK编译C/C++模块

5、真机运行

运行结果:


这个项目需要注意的是:

1、cameraTest.h和cameraTest.cpp和上一篇日志中所用的基本一致。唯一不同的是,由于Windows工程的包含目录和Android工程的包含目录不同(SDK不同,一个是SDK for windows一个是SDK for Android)。所以有些include指令需要改一下。

2、Android.mk文件中必须包含

OPENCV_LIB_TYPE:=STATIC
OPENCV_INSTALL_MODULES:=on
include E:\OpenCV-2.4.11-android-sdk\OpenCV-android-sdk\sdk\native\jni\OpenCV.mk

前两句是指定OpenCV SDK里面的so库在本项目中的引用方式(静态方式)。最后一句是指定OpenCV SDK的位置。

3、Application.mk文件需要包含

APP_CFLAGS += -Wno-error=format-security

这是忽略format-security错误。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值