1

Arjuncomar は、このリンクの OpenCV-Raw readme.md で述べています https://github.com/arjuncomar/opencv-raw/blob/master/README.md

"コンパイル/インストール

これまで自分のマシンでしかテストする機会がなかったので、このパッケージをコンパイルするのは少し難しいかもしれません。まず、マシン上の OpenCV のバージョン用の C ラッパーを生成する必要があります。このリポジトリには、OpenCV 3.0 (HEAD) 用のラッパーのみが含まれています。これらのラッパー (および対応する Haskell バインディング) は、次の方法で生成できます。

./setup.sh <path to opencv headers>

例えば

./setup.sh /usr/local/include"

Opencv-Raw のルート ディレクトリで「./setup.sh /usr/local/include」を実行しましたが、Ubuntu Saucy 64 ビットに OpenCV 2.4.7 をインストールしたところ、このエラーが発生しました。

 Traceback (most recent call last):
 File "cbits/genhsc.py", line 161, in <module>
 cgen.gen(header_dir, headers, dstdir)
 File "/home/w/Documents/opencv-raw-master/cbits/genc.py", line 367, in gen
 self.readHeaders(header_dir, srcfiles)
 File "/home/w/Documents/opencv-raw-master/cbits/genc.py", line 350, in readHeaders
 decls = parser.parse(header_dir + hdr)
 File "/home/w/Documents/opencv-raw-master/cbits/hdr_parser.py", line 732, in parse
 f = open(hname, "rt")
 IOError: [Errno 2] No such file or directory: '/usr/local/include/opencv2/core.hpp'

Arjuncomar は、「このリポジトリは OpenCV 3.0 (HEAD) のみのラッパーを保持しています」と述べています。そのため、OpenCV 3.0 のダウンロードを見つけようとしましたが、うまくいきませんでした。/usr/local/include にある core.hpp ファイルを見たことがないので、エラーがよくわかりません。私は、OpenCV の C++ インターフェイス用に自動生成された C ラッパー arjuncomar が彼の haskell バインディングで別の言語用の自分の OpenCV ラッパーに書いたものを取り入れようとしています (もちろん、haskell の部分を除く)。このコードのメイクファイルを作成できます i/e

cpp ファイル

void cv_imshow(String* winname, Mat* mat) {
    cv::imshow(*winname, *mat);
}

hppファイル

void cv_imshow(String* winname, Mat* mat);

そして、それがC++ OpenCVコードの完璧なCラッパーになることを期待してください.plsは私に知らせてください...そして可能であれば、ここに投稿されたそのようなmakeファイルを作成する方法に関するリンクが大いに役立ちます....私はCに慣れていますが、新しいC++/ C++ MakeFiles に変換し、エラーを心配することなくボリュームをより迅速に出力できるように、最初の試行でこれを完璧に実行したいと考えています...

....どんな助けでも大歓迎です...良い一日=)あなたにすべて...

4

2 に答える 2

2

私はライブラリの作者です。このライブラリは、OpenCV 関係者からの要求を受けて数回移動されました。現在、opencv_contrib repoのフォークに座っています。readme の指示に従って、ラッパーをビルドしてインストールします。

この手順は、opencv ビルド ディレクトリを設定し、cmakeopencv ソース ツリーの場所と、opencv_contrib から追加のモジュールをロードする必要があることを伝えることで、ディレクトリにデータを格納することになります。

cd <cmake build directory>
cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>

ライブラリをコンパイルしてインストールすると、C ラッパー ヘッダーが「/include/opencv2/c/」に、コンパイルされたバイナリが「/lib/libopenc_c.so」にインストールされます。cabalシステムにとghcが存在する場合は、Haskell バインディングもコンパイルしてインストールします。私にとって、これは次のように簡単です。

make -j6 && sudo make install

cmakeこの方法でビルドすると、ヘッダーがソース ツリーから取得され、ヘッダー パーサーとラッパー ジェネレーターに直接渡されるため、OP に記載されている問題を回避できます。バグ レポートをopencv_raw リポジトリまたはopencv_contribに送信してください。私は両方のリポジトリを監視しており、いつでも喜んでプル リクエストを受け付けています。

エドワード -- あなたが私に連絡を取ろうとしているのは理解しています. nrujac atgmail dotcom で私に連絡するか、リポジトリのいずれかで問題を開くことにより、github で直接連絡できます。

于 2014-04-17T14:15:17.983 に答える