标签:
1、下载opencv,并解压,将其目录下的sdk复制到eclipse的工作区间目录下,重命名为OpenCV-SDK(随意命名);
2、从eclipse中导入:file->import->general->exiting project into project->next->browse(选择路径)->select all->finish,此时project explorer中会出现opencv library-2.4.10,导入成功;
3、新建一个工程(要使用opencv)并选中,菜单栏project->properties->android->library中add->选中opencv library-2.4.10->OK;此时工程中会出现Android dependencies->opencv library-2.4.10.jar导入成功。接下来就可以调用相应的opencv中相应的功能进行java编程了。
4、接下来是使用ndk调用opencv(在1、2、3)的基础上;
5、头文件的生成(自动),使用命令行:
先进入到工程的src目录下:javah -classpath 加载类的路径 -d 输出路径 -jni 引导类的路径 Enter!成功生成.h文件:
注意两点:(1)-classpath 就是你生成.class文件的祖先目录,究竟是哪里呢?就是那个刚好要出现包文件的地方,比如我的ImageProc的class文件路径是F:\Android\OpenCV\GreyProcess\bin\classes\com\example\greyprocess\ImageProc.class包名是com.example,然后我classpath后面是F:\Android\OpenCV\GreyProcess\bin\classes\,(2)然后是-jni后面的,由于是在src目录下执行的javah命令这里直接写com.example.ImageProc就好了。我们使用javah不是为了单纯的生成.h头文件,不然就太大材小用了,我们是为了吧java文件中的函数声明转化成c和c++中可调用的函数形式,准确的说是可以通过ndk调用的形式,所以这里的文件名我们是可以随便改的,但是里面的函数不能动;
6、include头文件,编写c或者c++代码;
7、你会发现编写的东西总是报错,因为还要导入ndk中和opencv中的东西,还要配置android.mk和applation.mk,配置android.mk是有个横重要的地方,记得include一下opencv。这里主要说一下加入ndk的c库和opencv的库:
(1)先确定正确导入了ndk:window->preference->android->NDK->NDK location->browse:选择正确位置(如我的上面是D:\Java_NDK\Software\android-ndk-r10b)->apply->OK;
(2)设置构建环境变量:选中工程 project->properties->C/C++ Build->Enviroment->add:我的name是NDKROOT,然后value是你ndk所在的路径(我的是D:\Java_NDK\Software\android-ndk-r10b)->ok->apply
(3)导入需要的库:project->properties->C/C++ General->path and symbols->includes->add:重复选择,知道加入你所有要用的库->apply->ok;(这是我导入的几个:D:\Java_NDK\Software\android-ndk-r10b\platforms\android-4\arch-arm\usr\include;D:\Java_NDK\Software\android-ndk-r10b\platforms\android-8\arch-arm\usr\include;D:\Java_NDK\Software\android-ndk-r10b\sources\cxx-stl\gnu-libstdc++\4.6\include;F:\Android\OpenCV\OpenCV-SDK\native\jni\include这些因人而异)。
(4)设置完成,这时你会发现原来c或c++文件中的红叉叉没有了。
8、然后构建生成库,右击工程->build project;
9、运行工程run as android application。
标签:
原文地址:http://www.cnblogs.com/guanking19/p/4246569.html