java 图像处理 api_Atitit 图像处理 调用opencv 通过java api attilax总结



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

0818b9ca8b590ca3270a3433284dd417.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值