2017-06-12 3 views
1

Ich rufe:UnsatisfiedLinkError mit opencv zur Verarbeitung

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

in einer Processing Skizze und ich die folgende Fehlermeldung erhalten:

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. 

Dieser Fehler mir anders als die, scheint berichtet here.

Ein minimales Beispiel ist:

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); 

Und der Fehler in diesem Fall ist etwas ähnlich:

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. 

I Verarbeitung bin mit 3 in einer Ubuntu-Plattform.

Antwort

1

Lösung:

Fügen Sie einfach System.loadLibrary(Core.NATIVE_LIBRARY_NAME); vor dem entsprechenden Code

1

ich empfehlen daher, Gregs 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); 
} 

Console Ausgabe:

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

irgendwelche Gründe, es zu empfehlen? – Rodrigo

+0

** Pros **: Super einfach einzurichten (Skizze> Bibliothek importieren> Bibliothek hinzufügen> OpenCV für die Verarbeitung), leicht zugänglich OpenCV Funktionalitäten (Min/Max Helligkeit/Gesichtserkennung/Hintergrundsubtraktion, etc.), OpenCV zu Verarbeitung und Rückkonvertierungen ('Mat <-> PImage',' Point <-> PVector', etc.) wird mit vorkompilierten Bibliotheken für gängige Betriebssysteme ausgeliefert ** Nachteile **: verwendet derzeit OpenCV 2.4.5.0 (benötigt manuelle Aktualisierung, wenn neuere Funktionen benötigt werden), on Bei komplexeren Aufgaben ist es einfacher, den Großteil des Wrapper-Codes zu überspringen und PImage zu Beginn einfach in Mat zu konvertieren, mit der typischen Java OpenCV-API zu verarbeiten und dann zurück zu konvertieren. –

Verwandte Themen