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-19  opencv 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

2.3. 参考资料4

 

 

1.1. Opencv java api的支持 opencv2.4.2 就有了对java api的支持

2012-07-04 opencv2.4.2 就有了对java api的支持

虽说以前可以使用jna调用dll但是比较麻烦。数据类型可能对应不上。。使用python调用dll也是可以的。

有了全新的java api支持那就最好不过了。

1.2. 安装2016-05-19  opencv 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)

 

 

 

2.3. 参考资料

java中调用dll文件的两种方法 - jimmy609的专栏 - 博客频道 - CSDN.NET.html

opencv java api提取图片sift特征 - anexplore - 博客园.html

OpenCV 3.0 版正式发布,史上功能最全,速度最快的版本 - OPEN资讯.html

opencv_百度百科.html

 

 

 

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 马哈茂德  阿提拉 所罗门 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

 

 

头衔:uke总部o2o负责人,全球网格化项目创始人,

uke宗教与文化融合事务部部长, uke宗教改革委员会副主席

Uke部落首席大酋长,

uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,

奶牛科技cto ,uke 首席cto

uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

 Uke软件标准化协会理事长理事长 uke终身教育学校副校长

Uke 数据库与存储标准化协会副会长 uke出版社编辑总编

Uke医院方面的创始人

 

转载请注明来源:attilax的专栏  ?http://www.cnblogs.com/attilax/

--Atiend

 

 

 

posted @ 2016-12-22 00:26  attilaxAti  阅读(1373)  评论(0编辑  收藏  举报