如何在android studio上加入OpenCV库

如何在android studio上加入OpenCV库,第1张

1.安装 NDK, 下载android-ndk-r8e-windows-x86.zip, 解压至本地(android-ndk-r8e-windows-x86_64.zip解压后不包含prebuilt文件夹,sample中的hello-jni运行报错)

2.配置环境变量$NDKROOT=android-ndk的文件夹路径

3.eclipse安装CDT插件,Eclipse->help->Install software,在"available software sites"中选择相应的CDT路径,安装

4.下载最新的OpenCV for Anroid库OpenCV-2.4.4-android-sdk.zip ,解压至本地

5.编译生成openCV的jar库文件

1)eclipse中导入OpenCV-2.4.4-android-sdk\sdk\java文件夹

2)添加openCV Library工程的C++工程属性,右键project名称->New->other->C/C++->Convert to a C/C++ Project(Adds C/C++ Nature)

3)为project 配置ndk built路径。右键project->Properties->C/C++ build, 设置Build command: ${NDKROOT}/ndk-build.cmdbehavior选项中的不勾clean

4)编译工程, /bin文件夹下生成opencv library - 2.4.4.jar

6. 在目标Adnroid应用程序中添加对opencv library - 2.4.4.jar 的引用,便可以调用相应的open CV库函数了

步骤1: 首先需要下载openCV,这是Sourceforge的链接 http://sourceforge.net/projects/opencvlibrary/

步骤2: 安装openCV到自定义目录下,安装的过程中系统会自动设置openCV的环境变量。

步骤3: 安装完毕后需要手工设置一下环境变量,把D:\CodeLibrary\opencv

\build\x64\vc11\bin添加到系统变量-->Path中,其中D:\CodeLibrary\opencv是openCV的安装目

录,这里根据自己的目录进行修改。另外,如果是32位的 *** 作系统就把x64改成x86。

步骤4: 打开Visual Studio 2012创建一个Visual C++的一个新的空项目。

步骤5: 右键点击 [解决方案资源管理器] 中的解决方案结点,选择 [配置管理器]。

步骤6: 在 [活动解决方案平台(P)] 中选择x64(因为我用的是64位的 *** 作系统),假如没有x64可选则选择<新建 ...>,在 [键入或选择新平台(P)] 中选择x64然后点 [确定],然后关闭 [配置管理器]

步骤7:右键点击新建的项目,选择 [属性],打开属性窗口,然后在 [配置属性] 中选择 [VC++目录],编辑右边的 [包含目录],

把D:\CodeLibrary\opencv\build\include,D:\CodeLibrary\opencv\build\include

\opencv,D:\CodeLibrary\opencv\build\include\opencv2 这三个目录添加进去。这样用include添加openCV的头文件的时候才不会出错找不到文件。

步骤8:编辑右边的 [库目录],把openCV库函数的路径

D:\CodeLibrary\opencv\build\x64\vc11\lib添加进去(注意到Visual Studio

2012需要使用vc11这个目录,而不再是vc10,而且对应是64位的 *** 作系统所以选择x64这个目录)。让Visual

Studio在编译程序的时候,能够搜索到这个目录以调用openCV的函数 。

步骤9:选择左边的 [链接器],再选择 [输入],修改右边的 [附加依赖项] 把D:\CodeLibrary

\opencv\build\x64\vc11\lib目录下的所有以*.lib为扩展名的文件名添加进去,以添加lib文件(步骤8是添加库函数的搜索

目录,这一步是添加具体的lib文件。)在这里以d结尾的文件对应debug模式,而不是以d结尾的文件对应release模式,为了方便起见,我把它们

全部加进去了。

步骤10:现在已经完成了openCV的配置,运行一下一个简单的读图像的程序作为测试,可以看到图像能成功显示,按任意键可结束程序。

附上用于测试的代码:

#include<stdio.h>

#include"highgui.h"

int main(int argc, char** argv){

IplImage *img = cvLoadImage("E:\\2.jpg")//cvLoadImage()的参数为图片的完整路径名

cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE)

cvShowImage("Example1",img)

cvWaitKey(0)

cvReleaseImage(&img)

cvDestroyWindow("Example1")

return 0

}

Debug->工程名 properties->C/C++->General->Additional Include Directories 添加[opencv]/build/include

Debug->工程名 properties->Linker->General->Additional Library Directories 添加[opencv]/build/x64/vc11/lib

Debug->工程名 properties->Linker->Input->Additional Dependencies 添加需要的库文件(xxx246.lib是release版本,xxx246d.lib是debug版本)

lib对应的dll文件(在[opencv]/build/x64/vc11/bin中)复制到[system32]文件夹下

include的时候注意路径,例如#include <opencv2/core/core.hpp>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11263094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存