我需要从我的USB摄像头捕获视频流,为此,我使用Opencv 2.4.6进行Java开发。我遵循here中列出的步骤
我将"C:\opencv\build\java\x64“目录添加到我的系统路径中,并在ECLIPSE上将"opencv-246.jar”文件包含到我的库中。当你运行explame时
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class Main {
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("m = " + m.dump());
}
}
我得到了
m = [1, 0, 0;
0, 1, 0;
0, 0, 1]
OK =)
但是当我跑的时候
import org.opencv.highgui.VideoCapture;
public class Main {
public static void main(String[] args) {
VideoCapture vc = new VideoCapture(0);
if(vc.isOpened()){
System.out.println("Works!");
}
}
}
我得到了
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.highgui.VideoCapture.n_VideoCapture(I)J
at org.opencv.highgui.VideoCapture.n_VideoCapture(Native Method)
at org.opencv.highgui.VideoCapture.<init>(VideoCapture.java:113)
at Main.main(Main.java:5)
我将包含的所有路由添加到:
C:\opencv\build\x64\vc10
一个接一个,但不起作用。
最后,我使用C:\opencv\build\x64\vc10创建了一个名为OPENCV_DIR的变量,但仍然获得了UnsatisfiedLinkError。
请帮帮我!
发布于 2013-09-05 15:20:15
在第二个示例中,您跳过了这一行
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
所以opencv库没有加载,UnsatisfiedLinkError,等等。
编辑
感谢@Jishnu Prathap突出了java.library路径问题,如果您在设置时遇到问题,您仍然可以尝试使用java包装器的绝对路径so/dll/dylib,如下所示:
System.load("/path to/our/java_wrapper");
发布于 2015-05-24 02:52:50
在java.I中使用OpenCV时,我遇到了类似的错误。我做了两件事来解决这个问题。
static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
中。
发布于 2017-08-03 06:58:52
适用于使用opencv3.x的普通用户的:
HighGUI模块在Java for opencv 3.0及更高版本中不再存在。
import org.opencv.videoio.VideoCapture;
而不是
import org.opencv.highgui.VideoCapture;
videoio包括VideoCapture、VideoWriter。
类似地:
imgcodecs包括imread/imwrite和friends
示例:
Highgui.imread(fileName)
-->
Imgcodecs.imread(fileName)
https://stackoverflow.com/questions/18625948
复制相似问题