JavaCV的配置及使用

时间:2023-01-20 10:29:14

做数字图像处理的同学都知道,OpenCV这个库很好用。在Java中使用OpenCV有两种方式:第一种方式是通过java的JNI,调用C++编写的OpenCV的动态链接库;第二种方法就是直接用JavaCV了。下面详细介绍下JavaCV的使用。 

希望大家能留个言啊,有什么问题指出一下

1. 参考文献:http://code.google.com/p/javacv/

这是国外某位大神写的javacv的东东,很有参考价值

2. Win7下使用JavaCV

申明:有些步骤可能不是必须的,我也没试过,大家可以尝试下。

步骤一:下载opencv2.4.2  

下载地址: http://sourceforge.net/projects/opencvlibrary/files/

其它版本能用么?   opencv2.3.1及以上版本可以尝试下,其它的版本就不建议尝试了

步骤二:必须先安装opencv2.4.2,然后再配置opencv2.4.2的环境变量,然后再在vs2010或者vs2008上测试下opencv2.4.2(这里测试了opencv2.4.2的正确性之后可以避免以后不必要的麻烦)

1)点击下载得到的opencv2.4.2的exe文件,会弹出如下提示框。

JavaCV的配置及使用

图1

其实opencv2.4.2的安装就是将exe文件解压到相应的目录,没有别的意思。

2)将上步骤1解压得到的opencv文件夹拷贝到C盘根目录下

3)配置环境变量,不像opencv2.2那样,在安装的时候可以直接选择添加环境变量,opencv2.4.2需要自己手动添加环境变量

      变量名: PATH           C:\opencv\build\x86\vc10\bin;

      变量名:TBB               C:\opencv\build\common\tbb\ia32\vc10

4)在vs2010上测试opencv2.4.2的使用,可以按照这个网址的内容来进行http://www.cnblogs.com/tornadomeet/archive/2012/07/07/2580405.html

5)建议将C:\opencv\build\common\tbb\ia32\vc10下所有的dll文件,如下图所示,全部拷贝到C:\opencv\build\x86\vc10\bin目录下

步骤二:开始配置JavaCV了。

1)下载javacv-bin,下载链接http://download.csdn.net/download/rainwithvoice/4420411,下载之后解压,可以看到如下文件目录

JavaCV的配置及使用

图2

2)在eclipse下新建一个Java Project:JavaCV(这里名字随便取了)

3)在JavaCV下新建一个文件目录libs/armeabi,建好之后,文件目录如下图所示

JavaCV的配置及使用

图3 

4)将步骤1图片中显示的所有的jar文件拷贝到libs文件的根目录下,注意:不是armeabi目录。

5)首先右键刷新下JavaCV项目,然后使用右键JavaCV->Build Path->Configure Build Path, 在里面Add JARS,把刚才拷贝过来的所有jar包都加入到项目中。

6)这样JavaCV就配置好了,接下来有个简单示例

Smoother.java

import static com.googlecode.javacv.cpp.opencv_core.*;import static com.googlecode.javacv.cpp.opencv_imgproc.*;import static com.googlecode.javacv.cpp.opencv_highgui.*;public class Smoother {public static void smooth(String filename){IplImage image=cvLoadImage(filename);if(image!=null){cvSmooth(image,image,CV_GAUSSIAN,3);cvSaveImage("D:\\new-lena.bmp",image);cvReleaseImage(image);}}}
Test.java

public class Test {

public static void main(String args[]){
Smoother.smooth("D:\\lena.bmp");
}

}

通过上面的Smoother代码大家可以发现,JavaCV中的代码其实跟OpenCV的C++的代码很相似,除了注意一些指针类型的地方以外,其它基本没多大变化,所以大家用起来应该很方便的。


常见问题:
程序报异常:     no jniopencv_core in java.library.path

原            因:     图1 中所示的jar包只拷贝了javacpp.jar和javacv.jar到lib目录下,只要将所有的jar包都拷过去就没问题了,今天在这个上面栽了很久的,主要是被文献误导了,老外的文献里面说只要拷两个的,如下图所示

JavaCV的配置及使用


另外,还有一个最大的遗憾,JavaCV目前不支持中文,所以大家的图片或者路径名中最好不要包括中文