Beim Erstellen einer neuen Instanz in OpenCV 3.2, wirft das Programm eine UnsatisfiedLinkError
. Dies geschieht sowohl beim Aufruf des Mat
Konstruktor direkt, als auch bei Imgcodecs.imread
Aufruf, die wiederum einen Fehler in der folgenden Zeile wirft:Warum wirft OpenCV bei der Verwendung von Mat einen UnbefriedigtenLinkError?
Mat mats_mat = Converters.vector_Mat_to_Mat(mats);
Das Programm auf einem Mac laufen wird, um die neueste Version von macOS Sierra läuft (10.12.3), und alle verfügbaren dylib
Dateien befinden sich im Verzeichnis java.library.path
. Es wurde bestätigt, dass die gelesene Datei existiert. Die Stapelüberwachung liest (teilweise) wie folgt:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method)
at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:118)
Die dylib
Dateien werden mit dem folgenden Code in main
ohne Fehler oder Warnungen geladen:
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.loadLibrary("opencv_imgproc.3.2.0");
System.loadLibrary("opencv_imgcodecs.3.2");
System.loadLibrary("opencv_videoio.3.2");
System.loadLibrary("opencv_highgui.3.2.0");
System.loadLibrary("opencv_flann.3.2");
System.loadLibrary("opencv_ml.3.2");
System.loadLibrary("opencv_features2d.3.2");
System.loadLibrary("opencv_calib3d.3.2");
System.loadLibrary("opencv_objdetect.3.2");
System.loadLibrary("opencv_photo.3.2");
System.loadLibrary("opencv_stitching.3.2");
System.loadLibrary("opencv_video.3.2.0");
System.loadLibrary("opencv_superres.3.2");
System.loadLibrary("opencv_shape.3.2");
System.loadLibrary("opencv_videostab.3.2");
der Fehler ausgelöst wird, wenn jede der darstellen folgende Aktionen:
this(Imgcodecs.imread(filePath));
Mat mat = new Mat();
MatOfPoint matOfPoint = new MatOfPoint();