• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OpenCV1.1、OpenCV2.3の使い方)

OpenCV1.1とOpenCV2.3の使い方は?

このQ&Aのポイント
  • OpenCV1.1とOpenCV2.3の使い方について質問があります。
  • HOG特徴量を使用するためにOpenCV2.3をインストールしましたが、プログラムの書き換えが必要なのか不安です。
  • Pathの設定についても不安があります。解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.3

まず、OpenCVを使うのに最低限必要なヘッダファイルは cxcore (opencv2 なら core)です。cv ではありませんのでお間違いなきよう。 複数のOpenCVのバージョンを使用するのは不可能ではないかもしれませんが、やめたほうが無難です。少なくとも、ビルドエラーの意味もわからないようでは設定の変更もままなりませんので、新しい方に統一したほうがいいでしょう。ソースの修正もさほど難解ではないはずです。

amiamiamino
質問者

お礼

ありがとうございました。解決しました。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

まず、そのように大量にエラーが出るときにありがちなのは、 「最初の方の #includeとかプロトタイプ が間違ってて、そこから連鎖している」 というものです。 たとえば 「認識できない型 'CvRect' が使われています。」 とありますが、CvRectはcv.hあたりで定義されているはずです。 これが「未定義」となっているのなら、cv.hの読み込みに失敗したと考えるのが妥当です。 ということで、最後のエラーだけでは何の解決にもなりません。最初の方を見ましょう。 それから、OpenCVは、cv.h等だけを#includeして、"opencv2/flann/flann.hpp" のような個々のヘッダは#includeしないのが普通の使い方です。これが必要、ということは、cv.hが1.1のものになっているのでは?

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

具体的なエラーは? 使用環境は? 設定は? 1.1→2.xでヘッダファイルのディレクトリ構成等が変わってます。それに対応させてますか? 2.xでも、ほとんどのC言語用APIはそのまま残っており、コンパイルはほぼ変更無しに利用できるはずです。 ライブラリ名にバージョンを表す数字が入ってる場合があるので、リンクするファイルは変更が必要なケースがあります。 > Pathの設定などもOpenCV1.1のときのものを残したまま、OpenCV2.3用のPathを追加しただけ このために、使いたい方のバージョンが使えてない、ということはありそうです。 具体的に、どんな変更をしたのですか?

amiamiamino
質問者

補足

具体的には #include <cv.h> #include <highgui.h> #include "opencv2/flann/flann.hpp" int main (int argc, char **argv){ return 0; } を実行するとエラーが出ます。 #include "opencv2/flann/flann.hpp" の一行を消せば正常に実行できます。 エラーはかなり長いので最後の4行をコピペすると 1>c:\opencv2.3\build\include\opencv2\core\types_c.h(958): error C2027: 認識できない型 'CvRect' が使われています。 1> c:\program files (x86)\opencv\cxcore\include\cxtypes.h(840) : 'CvRect' の宣言を確認してください。 1>c:\opencv2.3\build\include\opencv2\core\types_c.h(958): fatal error C1003: プログラム内のエラーが 100 個を超えました。コンパイルは中断されます。 という感じです。 使用環境はWindows7、Microsoft Visual C++ 2010 Expressです。 うまく説明できてない気がしますが、よろしくお願いいたします...

関連するQ&A