11

必死になってます!! 私はJavaCVを介してJavaでOpenCVを使用しようとしています(Java の OpenCV をラップする JNA)。

Mac Os X 1.5を使用しています。

OpenCV をインストールし、含まれているサンプルをコンパイルして実行できます。それでうまくいきます。

ここでEclipseを開き、ここで説明するように新しいプロジェクトを作成します: http://code.google.com/p/javacv/

その新しいプロジェクトでは、opencv 関数を呼び出す小さなクラスが 1 つだけあります (サンプル コードを使用しました)。

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);
            // ...
        }
    }
}

実行すると、次のエラーが発生します。

スレッド「メイン」の例外 java.lang.UnsatisfiedLinkError: ライブラリ 'cxcore' を読み込めません: dlopen(libcxcore.dylib, 9): イメージが見つかりません

助けが必要です。何時間も Google を調べましたが、もうどこを探せばよいかわかりません。

4

3 に答える 3

5

SVN バージョンは JavaCV と互換性がないことが判明しました。

最新の公式バージョン (2.1) をダウンロードしてコンパイルし、インストールしたところ、動作しました。

http://code.google.com/p/javacv/issues/detail?id=19を参照してください。

于 2010-09-14T14:42:48.113 に答える
1

次の 2 つのライブラリをリンクする必要があります。

- 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 など) 用にコンパイルする必要があります。

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
于 2011-04-16T05:58:38.763 に答える
0

OPはあらゆる種類の問題が木工品から這い出し始めることを示唆しているので、私はこの問題をしばらく見ていました。Java で OpenCV プロジェクトをセットアップするための比較的簡単な経験を思いつくことができるように、大量の StackOverflow 投稿を調べました。JavaCV を調べたところ、それが私のニーズを満たしていないことがわかりました。ただし、OpenCV の投稿 (C++ の投稿) で参照されている機能を直接実装できましたが、特定の javacpp バージョンを使用した場合は Java 言語で実装できました。javacpp はコンパイル済みの C++ ライブラリに依存しているため、コンパイルの問題も山ほどありました。これは、ユーザーがいる環境にネイティブである必要があります (Java の土地に住む人々が対処したくないもの)。とにかく Maven で環境を構築することができました。私はEclipseを使用していますが、これは他のプログラミング環境でも問題なく動作するはずです。サンプル プロジェクトを作成して、ブートストラップ プロジェクトのビルドを開始し、作業を開始する方法を説明しました。プロジェクトは、URL を指定して 2 つの画像を比較します。これは、画像が同一であるかどうかの平等テストです。うまくいけば、これは人々がこの環境でセットアップして作業するのに役立ち、JavaでOpenCVを使用しようとしたときに遭遇した大量の落とし穴を回避するのに役立ちます(当時、私は精神的にOPとまったく同じ場所にいました:) )。

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

于 2017-08-29T19:42:54.377 に答える