注意:因为我配置过程中出现了错位,用的是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文件,会弹出如下提示框。
其实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
下载之后解压,可以看到如下文件目录
2)在eclipse下新建一个Java Project:TestJavaCV(这里名字随便取了)
3)在JavaCV下新建一个文件目录lib建好之后
4)把javacv-0.6-bin文件夹的内容全部拷贝到libs文件夹下,刷新项目之后,目录如下图所示
5)首先右键刷新下JavaCV项目,然后使用右键JavaCV->Build Path->Configure Build Path, 在里面Add JARS,把刚才拷贝过来的所有jar包都加入到项目中。
选择UserLibrary
新建之后,重命名为opencv-2.4.6,点击OK你会看到如下界面
这时候点击Add External Jars 把D:\ProgramFiles\JavaOpenCV2.4.6.0\opencv\build\java路径下opencv-246.jar的导进来哦
在弹出的对话框中选择External folder,定位到D:\ProgramFiles\JavaOpenCV2.4.6.0\opencv\build\java\x86文件夹即可,最后finish
6)这样JavaCV就配置好了,接下来有个简单示例
- 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);
- }
- }
- }
-
public class Test {
- public static void main(String args[]){
- Smoother.smooth("D:\\lena.bmp");
- }
- }
通过上面的Smoother代码大家可以发现,JavaCV中的代码其实跟OpenCV的C++的代码很相似,除了注意一些指针类型的地方以外,其它基本没多大变化,所以大家用起来应该很方便的。
常见问题:
用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
报错的原因一定是版本问题!或者是环境变量问题!大家一定按照步骤来,才能成功~