添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Code for reproduce, I can promise the path of libopencv-java455.so is right(which is set in $LD_LIBRARY_PATH)

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.core.Scalar;
import org.opencv.videoio.VideoCapture;
class Hello {
  static{
     System.loadLibrary("opencv_java455"); }
  public static void main(String[] args) {
    VideoCapture cap = new VideoCapture("");

command(~/workspace/opencv/opencv-4.5.5/build/bin/opencv-455.jar is opencv jar path)
java -cp ~/workspace/opencv/opencv-4.5.5/build/bin/opencv-455.jar Hello.java

Error log:
Exception in thread “main” java.lang.UnsatisfiedLinkError: ‘long org.opencv.videoio.VideoCapture.VideoCapture_2(java.lang.String)’

Check the symbol table:
00000000001105e0 g F .text 00000000000002a6 Java_org_opencv_videoio_VideoCapture_VideoCapture_12

which is right.

So I am very confused. I am new to Java, please help.

So If you have Opencv installed and the libary added this might get you started?

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.videoio.VideoCapture;
class Hello {
    public void Process(){
        VideoCapture cap;
        cap = new VideoCapture(0);
        // Read frame
        Mat frame = new Mat();
        cap.read(frame);
        // Clone frame and save as image.
        Mat frameImg = frame.clone();
        Imgcodecs.imwrite("frame.jpg", frameImg);
        //Relase capture
        cap.release();
  public static void main(String[] args) {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    System.loadLibrary("opencv_java455");
    Hello example = new Hello();
    example.Process();