代码之家  ›  专栏  ›  技术社区  ›  Matthieu Napoli

用JavaCV在Java中使用OpenCV

  •  10
  • Matthieu Napoli  · 技术社区  · 14 年前

    我快绝望了!!我想用 OpenCV 在里面 爪哇 通过 JavaCV (JNA为Java封装OpenCV)。

    我在 Mac OS X 1.5。

    我安装了opencv,我可以编译和运行包含的示例。这样就行了。

    现在我开门了 日食 ,我创建了一个新项目,如下所述: 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.UnsuffiedLinkError:无法 要加载库“cxcore”: dlopen(libcxcore.dylib,9):图像非 建立

    拜托,我需要帮助,我查了几个小时的谷歌,我不知道该在哪里寻找了。

    3 回复  |  直到 7 年前
        1
  •  4
  •   Matthieu Napoli    14 年前

    结果表明,SVN版本与javacv不兼容。

    我下载了最新的官方版本(2.1),编译并安装了它,它就工作了。

    http://code.google.com/p/javacv/issues/detail?id=19

        2
  •  1
  •   Radim Burget    14 年前

    您需要链接这两个库:

    - javacpp.jar
    - javacv.jar
    

    在javacv/lib opencv/win_x86_64中,必须有类似的文件:

     - msvcp100.dll
     - msvcr100.dll
     - opencv_core220.dll
     - opencv_calib3d220.dll
     - ...
    

    这些DLL必须为您的平台(win 32/win 64/linux/etc)编译。

    您必须定义opnecv dll文件的路径:

    -Djava.library.path=lib-opencv/win_x86_64/
    - or the DLLs have to be somewhere in your system PATH of your operating system
    
        3
  •  0
  •   darkhipo    7 年前

    我研究这个问题已经有一段时间了,正如操作提示的那样,各种各样的问题开始从木制品中爬出来。我经历了大量的StAcExtPoT帖子,能够在Java中建立一个OpenCV项目的相对无痛体验。我检查了javacv,发现它不符合我的需要。但是,当我使用某些JavaCpp版本时,我能够直接实现OpenCV帖子(C++帖子)中引用的功能,但在Java语言中实现。我也有大量编译问题,因为Javapp依赖于编译的C++库,这些库必须是用户所处的环境(一些生活在Java领域的人不喜欢处理)。不管怎样,我能和马文一起建造和环境。我使用Eclipse,但这可以与其他编程环境一起工作。我举了一个例子来说明如何开始构建一个引导程序项目并开始工作。 该项目比较了2个图像,给出了它们的URL。这是一个平等的测试,无论图像是否相同。希望这能帮助人们建立并在这个环境中工作,避免在尝试用Java中使用OpenCV时遇到的吨和吨陷阱(我当时和OP在心理上完全相同):

    示例: https://github.com/darkhipo/ImgzCmp