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


相关文章推荐

安卓使用ImageView显示OpenCV-Mat

Android 的Application—native调试暂时还只能进行主线程调试,在GDB里面,运行于子线程的OpenCv数据处理过程不能直接调试,OPenCV-Native函数 public...

【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析

这篇文章中,我们将详细而深入地弄懂入门OpenCV2最基本的问题,那就图像的载入,显示和输出。PS:在文章末尾提供了博文配套程序原代码的下载。 依然是先看一张运行截图: 了解过之前老版本OpenCV的...
  • zhmxy555
  • zhmxy555
  • 2014年03月05日 15:47
  • 204778

Java版opencv使用中的一些错误原因--Highgui.imread()读不进图片

在这liangMat image=Highgui.imread(image_path); image.empty()==true

OpenCV从入门到放弃(四):HighGui组件细讲

Opencv中图片读取显示写入细节.

opencv3.0关于Highgui

参考书中,看到关于图像读写的操作在Highgui包中,但在opencv-3.0中,再不用这个包了。 在opencv-3.0中,org.opencv.highgui.Highgui不用了,代替的是org...

opencv4android 中 Highgui.imread not found 的问题

OpenCV 2.x 到 3.0.0 (Java)中,库函数有了一定变化,下面两个找不到的方法 Highgui.imread(fileName, Highgui.CV_LOAD_IMAGE_GR...

导入opencv.highgui.Highgui会报错

import org.opencv.highgui.Highgui; 原因: 1、OpenCV-3.0版本的库中已经没有opencv.highgui.Highgui这个包, 2、op...

Opencv4Android分享:eclipse下opencv环境搭建

这篇文章的起因是楼主在实际工程开发中的经验总结,在这里做个记录。第一篇当然就是开发环境的搭建啦~ 一.下载opencv4android 首先去opencv官网下载最新的OpenCVO4Android...

Opencv4Android分享:第一个OpenCV应用

上篇:Opencv4Android分享:eclipse下opencv环境搭建 这篇文章目的在于通过一个简单android应用学习使用OpenCV api的方法。 Demo中使用了OpenC...

用java来调用OpenCV (一)

1.opencv是用c/c++写的一个东西,虽然对java已经提供了接口,但是很多地方还是很不周到,所以要结合javacv这个东西一起用,javacv这个东西其实就是封装了opencv,但比直接用op...
  • kouwoo
  • kouwoo
  • 2015年10月21日 17:01
  • 11308
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV4Android开发之旅(二)----Eclipse调用OpenCV2.4.4的Java接口配置及示例
举报原因:
原因补充:

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