【发布时间】:2017-06-30 17:57:39
【问题描述】:
在 OpenCV 3.2 中构造新的 Mat 实例时,程序会抛出 UnsatisfiedLinkError。直接调用 Mat 构造函数以及调用 Imgcodecs.imread 时都会发生这种情况,这反过来会在以下行中引发错误:
Mat mats_mat = Converters.vector_Mat_to_Mat(mats);
该程序正在运行最新版本 macOS Sierra (10.12.3) 的 Mac 上运行,所有可用的 dylib 文件都位于 java.library.path 目录中。已确认正在读取的文件存在。堆栈跟踪(部分)如下所示:
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)
dylib 文件使用main 中的以下代码加载,没有错误或警告:
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");
执行以下任何操作时都会引发错误:
this(Imgcodecs.imread(filePath));
Mat mat = new Mat();
MatOfPoint matOfPoint = new MatOfPoint();
【问题讨论】:
标签: java opencv image-processing computer-vision opencv3.0