我试图使用OpenCV库编译并运行一个简单的Java代码示例,在Ubuntu 14.04 64位上,可以在OpenCV的文档中找到: Java OpenCV Documentation
T
由于这只是一个简单的测试,我真的不想使用任何复杂的建筑系统。所以我用以下命令编译:
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.core.Scalar;
class SimpleSample
{
static
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args)
{
System.out.println("Welcome to OpenCV " + Core.VERSION);
Mat m = new Mat(5, 10, CvType.CV_8UC1, new Scalar(0));
System.out.println("OpenCV Mat: " + m);
Mat mr1 = m.row(1);
mr1.setTo(new Scalar(1));
Mat mc5 = m.col(5);
mc5.setTo(new Scalar(5));
System.out.println("OpenCV Mat data:\n" + m.dump());
}
}
但是我无法运行该应用程序,因为当我打电话时: java SimpleSample
我面临以下例外:
javac -cp "/usr/share/OpenCV/java/opencv-248.jar" SimpleSample.java
有人可以帮我运行这个应用程序吗?
答案 0 :(得分:2)
opencv-248.jar不在CLASSPATH上。您可以按如下方式运行它:
typedef struct card{
const char *suits;
const char *decks;
int value;
};
从源代码编译并将 libopencv_java248.so 复制到$ JAVA_HOME / jre / lib / amb64 /目录中。此平台特定文件未包含在jar文件中。在没有安装此文件的情况下运行示例程序将得到" java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java248" 错误。另请注意,需要为编译期间生成的特定于平台的文件安装Apache Ant。
答案 1 :(得分:1)
我设法解决了这个问题。 在Ubuntu 14.04 64bit中,您可以使用以下命令从命令行运行代码:
LD_LIBRARY_PATH=/usr/lib/jni/ java -cp /usr/share/OpenCV/java/opencv-248.jar:. SimpleSample
答案 2 :(得分:0)
可以使用-D
定义OpenCV本机二进制库路径(在我的情况下为java -cp /opt/local/share/OpenCV/java/opencv-343.jar:. -Djava.library.path=/opt/local/share/OpenCV/java/ SimpleCV
):
drop_first