Atitit 图像处理 调用opencv通过java api attilax总结
1.1.Opencv java api的支持opencv2.4.2就有了对java api的支持1
1.2.安装2016-05-19opencv v2.4.13 267M ,一个压缩包解压即可1
1.3.Opencv d java 接口api,把opencv-2413.jar加入java项目1
1.4./AtiPlatf_ee/src/com/attilax/img/SfitTest.java 提取sfit特征2
2.Qa3
2.1.java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: D:\tsclib.dll3
2.2.System.loadLibrary Native.loadLibrary区别3
1.1.Opencv java api的支持opencv2.4.2就有了对java api的支持
2012-07-04opencv2.4.2 就有了对java api的支持
虽说以前可以使用jna调用dll但是比较麻烦。数据类型可能对应不上。。使用python调用dll也是可以的。
有了全新的java api支持那就最好不过了。
1.2.安装2016-05-19opencv v2.4.13 267M ,一个压缩包解压即可
解压以后2.7g 包含64位和x86,如果只要64位,则1.5g差不多了
又包含vc12 和vc11版,,如果只要一个vc12,则600M体积就可以了。。
C:\progrm\opencv\build\x64\vc12
1.3.Opencv d java 接口api ,把opencv-2413.jar加入java项目
C:\progrm\opencv\build\java
opencv-2413.jar
opencv_java2413.dll
1.4./AtiPlatf_ee/src/com/attilax/img/SfitTest.java 提取sfit特征
、
package com.attilax.img;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.highgui.Highgui;
import org.opencv.features2d.*;
public class SfitTest {
/**
* ret
* 128
1589
* @param args
*/
public static void main(String[] args) {
//opencv_java2413 Core.NATIVE_LIBRARY_NAME
System.load( "C:\\progrm\\opencv\\build\\java\\x64\\opencv_java2413.dll" );
Mat test_mat = Highgui.imread("C:\\000sklt\\2.jpg");
Mat desc = new Mat();
FeatureDetector fd = FeatureDetector.create(FeatureDetector.SIFT);
MatOfKeyPoint mkp =new MatOfKeyPoint();
fd.detect(test_mat, mkp);
DescriptorExtractor de = DescriptorExtractor.create(DescriptorExtractor.SIFT);
de.compute(test_mat,mkp,desc );//提取sift特征
System.out.println(desc.cols());
System.out.println(desc.rows());
}
}
2.Qa
2.1.java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: D:\tsclib.dll
说明loadLibrary不支持路径。将System.loadLibrary("tsclib.dll");修改成System.load("D:/tsclib.dll");
2.2.System.loadLibrary Native.loadLibrary区别
一中是用JNA方法,另外是用JNative方法,两种都是转载来的,
Native.loadLibrary(DLLPATH,DM.class);需要实现一个接口
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java2413 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.attilax.img.SfitTest.main(SfitTest.java:15