2017-06-12 4 views
1

を処理するためのOpenCVを使用して:ProcessingスケッチにないUnsatisfiedLinkErrorは私が呼んでいる

Mat opencv_K= new Mat(3, 3, CvType.CV_32F); 

を、私は次のエラーを取得しています:

java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat(III)J 
    at processing.opengl.PSurfaceJOGL$2.run(PSurfaceJOGL.java:480) 
    at java.lang.Thread.run(Thread.java:745) 
UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat(III)J 
A library relies on native code that's not available. 
Or only works properly when the sketch is run as a 32-bit application. 

このエラーは私に報告したものとは異なるようですhere

最低限の例は次のとおりです。

import processing.core.PVector; 
import org.opencv.core.Mat; 
import org.opencv.core.CvType; 
import org.opencv.core.Core; 
Mat opencv_K= new Mat(3, 3, CvType.CV_32F); 

そして、この場合のエラー多少似ている:私はUbuntuのプラットフォームでの処理3を使用してい

UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat(III)J 
A library relies on native code that's not available. 
Or only works properly when the sketch is run as a 32-bit application. 

答えて

1

ソリューション:

ちょうど私がお試しください関連するコード

1

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);を追加GregのOpenCV for Processing library

import gab.opencv.*; 

import processing.core.PVector; 
import org.opencv.core.Mat; 
import org.opencv.core.CvType; 
import org.opencv.core.Core; 
Mat opencv_K; 

OpenCV opencv; 

void setup(){ 
    opencv = new OpenCV(this,640,480); 
    opencv_K = new Mat(3, 3, CvType.CV_32F); 
    println(opencv_K); 
} 

コンソール出力:

OpenCV for Processing 0.5.2 by Greg Borenstein http://gregborenstein.com 
Using Java OpenCV 2.4.5.0 
Mat [ 3*3*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x7fb86157f080, dataAddr=0x7fb861589e90 ] 
+0

いかなる理由がそれをお勧めするには? – Rodrigo

+0

** pros **:OpenCV機能(最小/最大輝度/顔検出/バックグラウンド減算など)へのアクセスが容易な、スケッチ>ライブラリの追加>ライブラリの追加>ライブラリの追加> (Mat <-> PImage'、 'Point <-> PVector'など)は、一般的なOS用にコンパイルされたライブラリと一緒に出荷されます。 ** cons **:現在OpenCV 2.4.5.0を使用しています(新しい機能が必要な場合は手動でアップデートする必要があります)。より複雑なタスクでは、ほとんどのラッパーコードをスキップして、最初にPImageをMatに変換し、典型的なJava OpenCV APIで処理してから変換する方が簡単です。 –

関連する問題