こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C++でOpenCV コンパイルでエラー

超初心者です。
Visual C++2010 ExpressでOpenCVを使おうとしています。

このページを参考にしています。
http://gihyo.jp/dev/feature/01/opencv/0002?page=2

プログラムは以下の通り。

#include <C:\Program Files (x86)\opencv\build\include\opencv\cv.h>
#include <C:\Program Files (x86)\opencv\build\include\opencv\highgui.h>

int main(int argc, char* argv[])
{
IplImage* img; // 画像ファイルポインタの宣言
char imgfile[] = "lena.jpg"; // 読み込み画像ファイル名

// 画像の読み込み
img = cvLoadImage(imgfile, CV_LOAD_IMAGE_COLOR);

// 画像の表示
cvNamedWindow ("lena", CV_WINDOW_AUTOSIZE);
cvShowImage ("lena", img);
cvWaitKey (0);
cvDestroyWindow("lena");

// 画像の解放
cvReleaseImage(&img);

return 0;
}

コンパイルすると、以下のエラーメッセージが出ます。

1>------ ビルド開始: プロジェクト: try, 構成: Debug Win32 ------
1> try.cpp
1>c:\program files (x86)\opencv\build\include\opencv\cv.h(63): fatal error C1083: include ファイルを開けません。'opencv2/core/core_c.h': No such file or directory
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

どのようにすれば通るのでしょうか?
教えてください。よろしくお願いします。

投稿日時 - 2014-12-29 17:00:30

QNo.8873992

すぐに回答ほしいです

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

> この連載では,以下のような開発環境をベースに解説を行っていきます。
> バージョン:OpenCV 1.0
> OS:Winodows XP
> IDE:Microsoft Visual C++ 2005


現在、OpenCVは2.xになっています。
ディレクリ構造が1.xのころから少し変っています。

2.x用に書かれた資料を探すか、自分で修正できる程度にC/C++言語の知識を深めるかしましょう。
私としては後者をお勧めしたいところです。

投稿日時 - 2014-12-29 22:31:53

お礼

回答ありがとうございます!

Cは大学時代にやっていたのですが、なんせ何十年も前のことなので、すっかり抜けてしまいました。

がんばって復習したいと思います。

投稿日時 - 2014-12-30 05:49:20

ANo.2

このQ&Aは役に立ちましたか?

15人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

えっと、普通はインクルードファイルをフルパスで指定しません。
プロジェクトにインクルードファイルのパスを設定し、そこからの相対パスを指定します。
たぶん、インクルードファイルのルートパスが設定されていないので、インクルードしているファイルが参照しているヘッダーファイルを見つけられないのだと思います。

--->引用
「構成」で「すべての構成」を選択し,左側のツリーから「C/C++」タブを選択し,「追加のインクルードディレクトリ」にインストールしたOpenCVのホームディレクトリの下の以下のディレクトリを追加します。
<---ここまで
ページの最初の方に書いてあるこれはやっていますか?

投稿日時 - 2014-12-29 17:22:15

補足

回答ありがとうございます!

最初はフルパスではなく、参考ページままでやってみたのですが、こんなエラーメッセージが。

1>------ ビルド開始: プロジェクト: try, 構成: Debug Win32 ------
1> try.cpp
1>c:\program files (x86)\opencv\try\try.cpp(1): fatal error C1083: include ファイルを開けません。'cv.h': No such file or directory
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

なので、試しにフルパスにしてみた次第です。

ご指摘の引用部はやってみました。ただ、「以下のディレクトリ」(cxcore\include, cv\include, otherlibs\highgui, cvaux\include.)が実際にはないんですけど、ここは臨機応変にディレクトリ名を変えないといけないのですかね?

超初心者の質問に付き合って頂いて、大変ありがたいです。
ありがとうございます!

投稿日時 - 2014-12-29 18:32:53

あなたにオススメの質問