OpenCV4Android开发之旅(二)----Eclipse调用OpenCV2.4.4的Java接口配置及示例

原创 2013年12月01日 22:15:38

上篇介绍的是,使用OpenCV4Android在Android APP开发中直接使用,现在介绍的是使用OpenCV的Java接口。自2.4.4版本之后,参考这里http://wiki.opencv.org.cn/index.php/Download,OpenCV发布一般发布四个平台的,分别是Windows、Linux/Mac、OpenCV4Android、IOS。上篇中介绍的是专属的OpenCV4Android。这次介绍的是使用Windows版本里提供的Java接口,究竟这种使用方法能否用到APP开发中还要进一步验证。

一、下载OpenCV2.4.4的Windows版本,http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.4/OpenCV-2.4.4.exe/download

二、将其安装到D:\ProgramFile\opencv目录。安装后整个文件夹大小为2.63G.


三、为了区别与Android开发,我们新建个工作空间Eclipse_Java,表示里面放纯Java工程。打开Eclipse切换到这个工作空间,然后点Window---Preference---Java--BuildPath---UserLibraries,起个名字OpenCV2.4.4-Java。然后点Add External JARs,找到目录D:\ProgramFile\opencv\build\java下的opencv-244,之后点下面的Native library location,设定目录为D:/ProgramFile/opencv/build/java/x86。



四、新建一个java项目Test1,建好后建一个主类TestOpenCV,然后选中项目按alt+enter,在Library选项里点右边的Add Library, 点User Library,然后选中刚建的那个OpenCV2.4.4-Java。




五、输入下面的测试代码:

package org.yanzi.testopencv;

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;


public class TestOpenCV {
	public static  void main(String[] args){
		
		System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
		
		Mat mat = new Mat();
		mat = Mat.eye(3, 3, CvType.CV_8UC1);
		System.out.print(mat.dump());		
		
		//第二个测试
		Mat src = Highgui.imread("G:\\kunlong.jpg");
		Highgui.imwrite("G:\\kunlong_src.jpg", src);		
		Mat grayMat = new Mat();
		grayMat.create(src.rows(), src.cols(), CvType.CV_8UC1);	
		Imgproc.cvtColor(src, grayMat, Imgproc.COLOR_RGB2GRAY);
		Highgui.imwrite("G:\\kunlong_gray.jpg", grayMat);
		System.out.print("一切OK!");
		
		
		
	
	}

}

第一个测试是官方给出的测试,新建一个矩阵,然后直接dump下打印出来。第二个测试是我加的,imread一个图片,然后保存下,再将其转成灰度图片,然后再保存。因为在Java里没有找到cvNamedWindow、imshow、cvShowImage之类的函数,只能用这个变通的方法来测试。注意是在2.4.4版本之后,在windows版本的OpenCV里才提供了Java接口。从2.3.1(或2.3.0)提供支持Android保本,直到OpenCV2.4.2开始提出OpenCV4Android这个概念,当然里面的东西也发生了变化。从OpenCV4Android开始之后,在Android里你必须要装那个OpenCVManager.apk,但是之前的从2.3.1到2.4.1版本,是不用装这个东西的。各位自己选择吧!2.4.2之后的Android上的OpenCV装了OpenCVManager.apk之后,自己开发的app大小确实变小了不少,之前你即便是用了其中的cvtColor函数,整个app要增加好几M。

另外,不知道为啥,使用Java的OpenCV不能够自动导包。而且在方法前面必须得加上他所属于的类,如imread光写这提示找不到方法,必须写Highgui.imread才可以了。另外,在C++里使用OpenCV的C++接口新建一个矩阵只需Mat mat = Mat(rowls, cols, CV_***)就行了,或者Mat mat, mat.create(),但在java里所有的变量你必须new一下才可以!!!!由于不能够自动导包,且必须加上方法所在的主类的名字,对不熟悉OpenCV的人增加了一定的难度,后续将提供相关接口的归纳和整理。参考:链接1


-------本文系原创,转载请注明作者yanzi1225627,欢迎大家加入OpenCV4Android开发联盟群:66320324,备注yanzi


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Java在eclipse中调用opencv时报错:java.lang.UnsatisfiedLinkError的解决方法

昨天把Java+opencv的环境配置好后,迫不及待的进行测试...... 出师不利.... 第一个代码就有错误,代码如下:import org.opencv.core.*; import org.o...

OpenCV4Android开发之旅(二)----Eclipse调用OpenCV2.4.4的Java接口配置及示例

本文介绍如何利用Eclipse使用OpenCV2.4.4(Windows平台)提供的Java接口,注意区分OpenCV4Android里的Java接口。虽然都是OpenCV的Java接口但两个概念不太...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

OpenCV4Android开发之旅(三)----Windows平台Eclipse、MinGW配置OpenCV2.4.4(C++接口调用) 全过程(附:MinGW编译OpenCV2.4.4)

在前文介绍了OpenCV4Android的使用及OpenCV2.4.4 windows版的java接口使用后,本文介绍OpenCV2.4.4 在windows上利用MinGW调C++使用OpenCV的...

OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例

本文介绍OpenCV的发展历程,以OpenCV2.4.4为载体演示如何将Android开发和OpenCV通过Java接口进行调用。让数字图像处理和Android APP开发完美融合。

libSVM(Java)二次开发接口调用及更改的文档

原文链接:点击打开链接 文档整理:陈伟 chenweishaoxing#163.com 下载libsvm 方法:google libsvm找到官网下载: http://www.csie.ntu...

微信企业号开发之access_token接口调用示例

摘要:在微信企业号开发中,首先需要调用access_token的接口,具体请看官网文档,地址为:https://work.weixin.qq.com/api/doc#10013 第一步:创建企业应...

关于java接口的一些重要的点

一.接口是java中一个很重要的元素,他的好出很多 首先,接口是作为一个标准,让实现接口的类实现具体的功能 其次,java 8 中的接口不再是一个没有任何实现具体功能方法的特殊类了,java 8 ...

java后台调用webservice接口示例

在网上查阅了很多关于java后台调用webservice接口的例子,但在我项目中一直无法通过,后来还是通过拼接请求报文才解决,如下是具体代码: public static void main(Stri...

报表开发工具中开放的部分图表js接口列表

本文详细归纳介绍了FineReport 8.0版本中开放的图表js接口的功能及具体接口

webservice接口调用

自己写的一个webservice接口调用方法,接口的参数格式和返回解析就不给了。
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)