Skip to content

opencv_cudaoptflow produces no jniopencv_ximgproc in java.library.path #911

@n-kai-cj

Description

@n-kai-cj

I make a opencv + cuda test code like below and confirmed to success of opencv_cudafeatures2d and opencv_cudaimgproc, but opencv_cudaoptflow failed with java.lang.UnsatisfiedLinkError: no jniopencv_ximgproc in java.library.path: [...].
Does anybody know why?

import org.bytedeco.opencv.global.opencv_core;
import org.bytedeco.opencv.global.opencv_cudaimgproc;
import org.bytedeco.opencv.global.opencv_imgproc;
import org.bytedeco.opencv.opencv_core.GpuMat;
import org.bytedeco.opencv.opencv_cudaoptflow.FarnebackOpticalFlow;
import org.bytedeco.opencv.opencv_cudafeatures2d.ORB;
import org.bytedeco.opencv.opencv_cudaimgproc.TemplateMatching;

public class Main {
    public static void main(String[] args) {
        GpuMat mat_cuda = new GpuMat();
        System.out.println("mat_cuda succeed");
        ORB orb_cuda = ORB.create();
        System.out.println("orb_cuda succeed");
        TemplateMatching temp_cuda = opencv_cudaimgproc.createTemplateMatching(opencv_core.CV_8UC1, opencv_imgproc.TM_SQDIFF);
        System.out.println("temp_cuda succeed");
        FarnebackOpticalFlow optflow_cuda = FarnebackOpticalFlow.create();
        System.out.println("optflow_cuda succeed");
    }
}

run

mat_cuda succeed
orb_cuda succeed
temp_cuda succeed
java.lang.UnsatisfiedLinkError: no jniopencv_ximgproc in java.library.path: [...]
    at java.lang.ClassLoader.loadLibrary (ClassLoader.java:2670)
    at java.lang.Runtime.loadLibrary0 (Runtime.java:830)
    at java.lang.System.loadLibrary (System.java:1870)
    at org.bytedeco.javacpp.Loader.loadLibrary (Loader.java:1631)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1265)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1109)
    at org.bytedeco.opencv.global.opencv_ximgproc.<clinit> (opencv_ximgproc.java:31)
    at java.lang.Class.forName0 (Native Method)
    at java.lang.Class.forName (Class.java:398)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1176)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1109)
    at org.bytedeco.opencv.opencv_cudaoptflow.DenseOpticalFlow.<clinit> (DenseOpticalFlow.java:57)
    at Main.main (Main.java:17)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:254)
    at java.lang.Thread.run (Thread.java:834)
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\-\.javacpp\cache\opencv-4.3.0-1.5.3-windows-x86_64.jar\org\bytedeco\opencv\windows-x86_64\jniopencv_ximgproc.dll: The specified procedure could not be found
    at java.lang.ClassLoader$NativeLibrary.load0 (Native Method)
    at java.lang.ClassLoader$NativeLibrary.load (ClassLoader.java:2442)
    at java.lang.ClassLoader$NativeLibrary.loadLibrary (ClassLoader.java:2498)
    at java.lang.ClassLoader.loadLibrary0 (ClassLoader.java:2694)
    at java.lang.ClassLoader.loadLibrary (ClassLoader.java:2627)
    at java.lang.Runtime.load0 (Runtime.java:768)
    at java.lang.System.load (System.java:1834)
    at org.bytedeco.javacpp.Loader.loadLibrary (Loader.java:1581)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1265)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1109)
    at org.bytedeco.opencv.global.opencv_ximgproc.<clinit> (opencv_ximgproc.java:31)
    at java.lang.Class.forName0 (Native Method)
    at java.lang.Class.forName (Class.java:398)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1176)
    at org.bytedeco.javacpp.Loader.load (Loader.java:1109)
    at org.bytedeco.opencv.opencv_cudaoptflow.DenseOpticalFlow.<clinit> (DenseOpticalFlow.java:57)
    at Main.main (Main.java:17)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:254)
    at java.lang.Thread.run (Thread.java:834)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions