【发布时间】:2011-04-11 22:21:55
【问题描述】:
我越来越绝望了!!我正在尝试通过 JavaCV(JNA 为 Java 包装 OpenCV)在 Java 中使用 OpenCV。
我使用的是 Mac Os X 1.5。
我安装了 OpenCV,我可以编译和运行包含的示例。这样就行了。
现在我打开 Eclipse,并创建一个新项目,如下所述: http://code.google.com/p/javacv/
在那个新项目中,只有一个小类调用了 opencv 函数(我使用了示例代码):
import static name.audet.samuel.javacv.jna.cxcore.*;
import static name.audet.samuel.javacv.jna.cv.*;
import static name.audet.samuel.javacv.jna.highgui.*;
import static name.audet.samuel.javacv.jna.cvaux.*;
public class Test {
public static void main(String[] args) {
IplImage image = cvLoadImage("test.png", 1);
if (image == null) {
System.err.println("Could not load image file.");
} else {
cvSmooth(image, image, CV_GAUSSIAN, 3, 0, 0, 0);
// ...
}
}
}
当我运行它时,出现以下错误:
线程“main”中的异常 java.lang.UnsatisfiedLinkError:无法 加载库“cxcore”: dlopen(libcxcore.dylib, 9): 图像不 找到了
拜托,我需要帮助,我在谷歌上看了几个小时,我不知道该去哪里找了。
【问题讨论】:
-
@Matthieu:OSX 用户有时会遇到 32 位或 64 位 VM 之间的库兼容性问题。您可以尝试在启动 Eclipse 启动配置时将 -d32 选项作为 VM 参数吗
-
我添加了代码(这是来自 JavaCV 的示例代码)。我尝试了“-d32”参数,但出现以下错误:“无法在 32 位模式下运行 Java。继续以 64 位模式运行。”也许是这样?
-
@Matthieu:可能。见code.google.com/p/javacv/issues/detail?id=12#c11。由于您的 Eclipse 处于 64 位模式,您需要确认您使用的是 64 位 OpenCV 版本。
-
是的,但我明确地将 openCV 编译为 32 位,因为我的架构是 32 位的(嗯,我相当确定!我有一台 2009 年买的 macbook,最便宜的)。所以我不明白为什么 Eclipse 是 64 位的?有没有办法知道我的 Mac 是 32 位还是 64 位?
-
@Matthieu:试试stata.com/support/faqs/win/64bit.html
标签: java eclipse macos opencv javacv