我目前正在尝试让opencv和javacv在我的树莓pi上工作。
我遵循了这个教程
我相信一切都安排妥当了。
当前文件夹路径如下所示。
/home/pi/build - The three javacv libs (javacpp.jar, javacv.jar and javacv-linux-arm.jar)
the opencv jar is located at
/home/pi/build/opencv/opencv-2.4.11/release/bin - opencv-2411.jar
opencv附带了一些java示例,我正在查看的示例位于
home/pi/build/opencv/opencv-2.4.11/samples/java/eclipse/Hellocv/src/Main.java
这是代码本身。
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.out.println("Welcome to OpenCV " + Core.VERSION);
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("m = " + m.dump());
}
}
然而,当我编译它时(包括或不包括类路径),我得到了错误
package.org.opencv.core does not exist.
编辑-如果它是相关的,我也使用新的覆盆子皮2 b+
编辑2/3(改进细节
它以点击率编译
javac -cp .:/home/pi/build/opencv/opencv-2.4.11/release/bin/opencv-2411.jar:/home/pi/build/opencv/opencv-2.4.11/release/lib Main.java
但当我在“system.loadlibrary”行运行它时失败了
java -cp .:/home/pi/build/opencv/opencv-2.4.11/release/bin/opencv-2411.jar:/home/pi/build/opencv/opencv-2.4.11/release/lib Main
错误是
unsatisfiedlinkerror: no opencv_java2411 in java.library.path
我试过查找这个,但大多数解决方案都是针对windows的。我提供了一个直接链接到我的类路径中的opencv\u java2411.jar文件,所以我不确定为什么它不会运行。
3条答案
按热度按时间thtygnil1#
在运行jar时(从命令行、eclipse或任何您正在使用的ide中),尝试将java.library.path属性设置为指向javaopencv libs的位置。例如,如果您有一个可运行的jar,请尝试
这还假设您已经构建了opencv,java是构建的模块之一。下面是一个很好的教程http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html
ijxebb2r2#
反思一下,我认为这之所以不是编译,很大一部分原因是因为它是“eclipse”示例之一,而我并没有尝试在eclipse中编译它。
我最终找到的解决方案是使用ant构建和编译java代码。
我的主要来源是这个opencv页面
我应该注意到,他们在该页上显示的示例在samples子文件夹中可用,因此您可以使用已经提供的内容来节省一些时间。
感谢@nomis
krcsximq3#
我也有同样的问题,我只是通过这样做来解决:将opencv-2411.jar文件复制到程序所在的位置(main.java)并提取opencv-2411.jar文件