Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

时间:2023-01-20 09:51:55

注意:因为我配置过程中出现了错位,用的是javacv-0.4-bin+opencv2.4.4,配置过程中最后运行总是报错“”Exception in thread "main" java.lang.UnsatisfiedLinkError: AppData\Local\Temp\javacpp7263005175519\jniopencv_core.dll: Can't find dependent libraries,安装了C++运行环境之后,还是报错!即使将opencv安装路径换到c盘根目录也不起作用!因此换了版本,最后测试通过!发现不是和opencv有关系,而是和版本配套有关系!!

下面的一些图中有时候是会看到opencv2.4.4,希望大家不要误会,请自动修改成opencv2.4.6.0,而且opencv的解压目录没有任何要求!!!!!

1. 参考文献:http://code.google.com/p/javacv/这是国外某位大神写的javacv的东东,很有参考价值

http://blog.sina.com.cn/s/blog_7b4a5b550101ifi7.html

http://docs.opencv.org/2.4.4-beta/doc/tutorials/introduction/desktop_java/java_dev_intro.html

2. Win7下使用JavaCV

步骤一:下载opencv2.4.6.0http://sourceforge.net/projects/opencvlibrary/files/opencv-win/

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

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

Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

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

2)将上步骤1解压得到的opencv文件夹

3)配置环境变量,opencv2.4.6.0需要自己手动添加环境变量

      变量名: PATH   D:\Program Files\JavaOpenCV2.4.6.0\opencv\build\x86\vc10\bin

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

步骤三:开始配置JavaCV

1)   下载javacv-bin,opencv2.4.6.0需要javacv-0.6-bin版本,否则一定会报错!!!!下载链接http://download.csdn.net/detail/yinbinglengyue/6773265

下载之后解压,可以看到如下文件目录

Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

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

3)在JavaCV下新建一个文件目录lib建好之后

4)把javacv-0.6-bin文件夹的内容全部拷贝到libs文件夹下,刷新项目之后,目录如下图所示

Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

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

Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

选择UserLibrary

Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

新建之后,重命名为opencv-2.4.6,点击OK你会看到如下界面

Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

这时候点击Add External Jars 把D:\ProgramFiles\JavaOpenCV2.4.6.0\opencv\build\java路径下opencv-246.jar的导进来哦

Java配置opencv 亲自试验~Eclipse+javacv-0.6-bin+opencv2.4.6.0

在弹出的对话框中选择External folder,定位到D:\ProgramFiles\JavaOpenCV2.4.6.0\opencv\build\java\x86文件夹即可,最后finish

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

  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.     public static void smooth(String filename){  
  7.         IplImage image=cvLoadImage(filename);  
  8.         if(image!=null){  
  9.             cvSmooth(image,image,CV_GAUSSIAN,3);  
  10.             cvSaveImage("D:\\new-lena.bmp",image);  
  11.             cvReleaseImage(image);  
  12.         }  
  13.     }   
  14. }  
  1. public class Test {     
  2.     public static void main(String args[]){  
  3.         Smoother.smooth("D:\\lena.bmp");  
  4.     }   
  5. }  

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

常见问题:

用eclipse集成javacv时,报如下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\John\AppData\Local\Temp\javacpp7263005175519\jniopencv_core.dll: Can't find dependent libraries

这是版本不对的问题或者没有安装c++环境,我也出现过,因此我换了opencv版本,安装了c++运行环境,最后问题解决。

c++运行环境的下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=5555

报错的原因一定是版本问题!或者是环境变量问题!大家一定按照步骤来,才能成功~