配置JavaCV

做数字图像处理的同学都知道,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张图片

图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

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

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

配置JavaCV_第3张图片

图3 

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

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

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

Smoother.java

[java]  view plain copy
  1. import static com.googlecode.javacv.cpp.opencv_core.*;  
  2. import static com.googlecode.javacv.cpp.opencv_imgproc.*;  
  3. import static com.googlecode.javacv.cpp.opencv_highgui.*;  
  4.   
  5. public class Smoother {  
  6.       
  7.     public static void smooth(String filename){  
  8.         IplImage image=cvLoadImage(filename);  
  9.         if(image!=null){  
  10.             cvSmooth(image,image,CV_GAUSSIAN,3);  
  11.             cvSaveImage("D:\\new-lena.bmp",image);  
  12.             cvReleaseImage(image);  
  13.         }  
  14.     }  
  15.   
  16. }  
Test.java

[java]  view plain copy
  1. public class Test {  
  2.       
  3.     public static void main(String args[]){  
  4.         Smoother.smooth("D:\\lena.bmp");  
  5.     }  
  6.   
  7. }  

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


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

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



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

*****************************************************************************************************************************************************************************

我使用的是OpenCV2.4.3.

和以上教程不同是:设置环境变量的时候只需要Path: C:\opencv\build\x86\vc10\bin; 而不再需要设置TBB

我自己测试的结果表明必须把OpenCV解压到C盘根目录才能正常运行,我刚开始解压在D盘根目录,运行出现错误,移到C盘根目录就可以了。

你可能感兴趣的:(java,javacv,opencv)