fatal error C1083: include ファイルを開けません というエラーが出ます

このQ&Aのポイント
  • 初心者のため、ソースコード内に必要なヘッダーファイルが見つからずにエラーが発生しています。
  • 開発環境がVisual C++ 2008 Express Editionであるため、ヘッダーファイルの検索パスが設定されていない可能性があります。
  • ビルドが成功するためには、正しいヘッダーファイルのパスを指定する必要があります。
回答を見る
  • ベストアンサー

fatal error C1083: include ファイルを開けません というエラーが出ます

初心者です。ソースは以下の通りです。 #include "stdafx.h" #include <cv.h> #include <highgui.h> #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib") int _tmain(int argc, _TCHAR* argv[]) { Ip1Image* img; //画像変数宣言 cvNamedWindow("画像表示"); // 表示ウィンドウの作成 img = cvLoadImage("Image.jpg"); //画像ファイルの読み込み if(img == NULL){ //ファイルが読み込めない場合 printf("ファイルが読み込めません。\n"); cvWaitKey(0); //キー入力待機 return -1; } cvShowImage("画像表示", img); //表示ウィンドウに画像を表示 cvWaitKey(0); //キー入力待機 cvDestroyWindow("画像表示"); //表示ウィンドウの破棄 cvReleaseImage(&img); //画像領域の解放 return 0; } 以上のソースをビルドすると、以下のようなエラーが出てしまって、うまくコンパイルすることができません。 1>------ ビルド開始: プロジェクト: ImageDisplay, 構成: Debug Win32 ------ 1>コンパイルしています... 1>ImageDisplay.cpp 1>c:\users\g031f096\documents\visual studio 2008\projects\imagedisplay\imagedisplay\imagedisplay.cpp(5) : fatal error C1083: include ファイルを開けません。'cv.h': No such file or directory 1>ビルドログは "file://c:\Users\g031f096\Documents\Visual Studio 2008\Projects\ImageDisplay\ImageDisplay\Debug\BuildLog.htm" に保存されました。 1>ImageDisplay - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== どのようにすれば通るのでしょうか?よろしくお願いします。開発環境は Visual C++ 2008 Express Editionです。

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

  • ベストアンサー
  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.4

フルパスを入れるというのは、この行を 「#include <cv.h>」この行を 「#include <C:\Program Files\OpenCV\cv\include\cv.h>」これに置き換えてコンパイルしてみてください。 という意味です。 これでも'No such file or directory'のエラーが出るなら別の理由が考えられます。 そのファイルへのアクセス権が無いとかなど・・・

moti111
質問者

お礼

すいません。なんとか解決できました。どうもありがとうございました。

その他の回答 (3)

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.3

以下の内容は本当にインクルードファイルの中身ですか? $(VCInstallDir)include $(VCInstallDir)atlmfc\include $(WindowsSdkDir)\include $(FrameworkSDKDir)include C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\otherlibs\highgui C:\Program Files\OpenCV\otherlibs\ffopencv C:\Program Files\OpenCV\ml\include これプロジェクトプロパティの追加のインクルードパスか、オプションのインクルードパスにしか見えないのですが・・・ で、cv.hがある場所ですが・・・ >一応、cv.hはOpenCVのincludeのフォルダにあるようなんですが、開こうとすると不明なスコープとなってしまっています。 >そして一応、cvディレクトリにcv.hが入っているようなのですが・・・ この補足からフルパスが・・・ C:\Program Files\OpenCV\include\cv.h C:\Program Files\OpenCV\cv\cv.h のどちらかにあると推測できますが、この両方ともインクルードパスにはありません。 まず以下のようにフルパスにして、cv.hの正確な位置を把握してから、インクルードパスの設定を見直したほうがいいです。 #include <C:\Program Files\OpenCV\include\cv.h>

moti111
質問者

補足

すいません。オプションのインクルードファイルの中身でした。申し訳ありません。 実際にインクルードファイルがあるのは OpenCV>cv>include で、このインクルードファイルの中にcv.hが入っています。 それからフルパスを入れる場所はどこにすればよいのでしょうか? 初心者過ぎて申し訳ないです・・・

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

読み取れているとして、当該のインクルードファイルが 本当にどこにもないのか、それともどこかにあるのか、確認できますか? そもそも、当該のインクルードファイルの名前は正しいのですね?

moti111
質問者

補足

すべて本(OpenCV映像処理&解析)に書いてある通りにしているので、問題ないかとは思うのですが・・・ 読み取れているというのは、このエラーを自分が理解しているかどうかということですか? それすら危ういです 一応、cv.hはOpenCVのincludeのフォルダにあるようなんですが、開こうとすると不明なスコープとなってしまっています。 どのようにすればよいでしょうか。よろしくお願いします。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

>どのようにすれば通るのでしょうか? どういうエラーメッセージが出ているかは読み取れていますか?

moti111
質問者

補足

それからさきほどのコメントの補足なのですが、インクルードファイルの中は以下のようになっています。 $(VCInstallDir)include $(VCInstallDir)atlmfc\include $(WindowsSdkDir)\include $(FrameworkSDKDir)include C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\otherlibs\highgui C:\Program Files\OpenCV\otherlibs\ffopencv C:\Program Files\OpenCV\ml\include そして一応、cvディレクトリにcv.hが入っているようなのですが・・・

関連するQ&A

  • Visual C++,OpenCVでのリンクエラー

    こんにちは。 現在、Microsoft Visual C++ 2010 の環境で、OpenCV(ver2.3.1)を用いて、画像認識のアプリケーションを作ろうと考えています。ただ、Visual C++ 、OpenCV共に扱うのが初めてで、openCVのライブラリーをC++に認識させることができていません。 具体的には、下記の様なエラーが出ます。 「 Sample.obj : error LNK2019: 未解決の外部シンボル _cvReleaseImage が関数 _wmain で参照されました。 (同様に、以下の外部シンボルも参照できていません。_cvDestroyAllWindows、_cvWaitKey、_cvShowImage、_cvSmooth、_cvCreateImage、_cvGetSize、_cvNamedWindow、_cvLoadImage) 」 リンクの設定が上手くできていないと考え、 プロジェクト > ○○のプロパティ > 構成プロパティ > リンカー > 全般 > 追加ライブラリディレクトリ に、C:\opencv\build\x64\vc10\lib というように記入し(64bit環境です)、また、 プロジェクト > ○○のプロパティ > 構成プロパティ > リンカー > 入力 > 追加依存ファイル に、opencv_core231d.lib;opencv_imgproc231d.lib;opencv_highgui231d.lib;opencv_objdetect231d.lib;opencv_contrib231d.lib;opencv_features2d231d.lib;opencv_flann231d.lib;opencv_gpu231d.lib;opencv_haartraining_engined.lib;opencv_legacy231d.lib;opencv_ts231d.lib;opencv_video231d.lib を追加しております。 実行しているサンプルファイルは下記になります。 -------------------- // Sample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" //プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに // 『C:\OpenCV2.3\include』を追加のこと #include "opencv2\\opencv.hpp" #ifdef _DEBUG //Debugモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_core231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_imgproc231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_highgui231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_objdetect231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_contrib231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_features2d231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_flann231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_gpu231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_legacy231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_ts231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_video231d.lib") #else //Releaseモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_core231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_imgproc231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_highgui231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_objdetect231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_contrib231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_features2d231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_flann231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_gpu231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_legacy231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_ts231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_video231.lib") #endif int _tmain(int argc, _TCHAR* argv[]) { //画像データの読込 IplImage* src_img = cvLoadImage("C:\\opencv\\samples\\c\\lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); if (src_img == NULL){ return 0; } //表示ウィンドウの作成 cvNamedWindow("src"); cvNamedWindow("dst"); //処理後画像データの確保 IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels); //画像処理例(ガウシアンフィルタ) cvSmooth(src_img, dst_img, CV_GAUSSIAN, 9); //画像の表示 cvShowImage ("src", src_img); cvShowImage ("dst", dst_img); //キー入力待ち cvWaitKey (0); //全てのウィンドウの削除 cvDestroyAllWindows(); //画像データの解放 cvReleaseImage(&src_img); cvReleaseImage(&dst_img); return 0; } --------------- 初心者な質問で大変恐縮ながら、どこを修正すればよいかお分かりでしたら、お教え頂けませんでしょうか?何卒宜しくお願いします。

  • OpenCVの実行エラー

    OpenCVで下記の用なテストプログラムを作成しました。 --------------------------------------- #include <stdio.h> #include <cv.h> #include <cxcore.h> #include <highgui.h> #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") int main(void) { unsigned char *Image; IplImage* img = NULL; IplImage* clone = NULL; // 画像読み込み img = cvLoadImage("image.bmp", -1); // 画像コピー clone = cvCloneImage(img); return 0; } --------------------------------------- ところが、実行すると --------------------------------------- Bad argument(Bad image header) in function cvCloneImage, D:\User\VP\openCV\cxcore\src\cxarray.cpp --------------------------------------- というエラーメッセージがでて実行することができませんでした。 OpenCVに付属していたsampleプログラムは動作しました。 // 画像コピー clone = cvCloneImage(img); の一文をコメントアウトするとエラーはなぜかでません。 このエラーはどうしてでるのでしょうか? OSはwindowsXP コンパイルはC++6.0とVS2005の両方で試しましたが同じ結果がでます。

  • 画像処理を簡単に扱えるということを知り、OpenCV2.1をインストー

    画像処理を簡単に扱えるということを知り、OpenCV2.1をインストールしました。 インストールは http://imagingsolution.blog107.fc2.com/blog-entry-207.html のページの初心者向けの方を参考にしました。 本体のインストール後、Visual Studio 2005 のインクルードファイルとライブラリの設定を行いました。本体のインストール先をCドライブ直下にしたため、以下のパスを設定しました。 c:\OpenCV2.1\include\opencv c:\OpenCV2.1\lib また、環境変数のpathの部分に以下のパスを設定しました。 c:\OpenCV2.1\bin 設定後、簡単なサンプルプログラムを下記の簡単なサンプルプログラムを実行してみました。 画像を読み込み、それを表示するだけのものです。 --------------------------------------------------- #include "cv.h" #include "highgui.h" #ifdef _DEBUG //Debugモードの場合 #pragma comment(lib,"cv210d.lib") #pragma comment(lib,"cxcore210d.lib") #pragma comment(lib,"cvaux210d.lib") #pragma comment(lib,"highgui210d.lib") #else //Releaseモードの場合 #pragma comment(lib,"cv210.lib") #pragma comment(lib,"cxcore210.lib") #pragma comment(lib,"cvaux210.lib") #pragma comment(lib,"highgui210.lib") #endif 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; } -------------------------------------------------- Debugモードのときにこのプログラムを実行すると以下のエラーが出ます。 「アプリケーションを正しく初期化できませんでした。(0xc0150002)」 binフォルダの中身を見てみたところ、それぞれのdllもちゃんとありました。 この症状の場合、Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86) をインストールしてくださいとのことでしたが、正常にインストールできたか分からない状態です。 vcredist_x86.exeを起動してみると、「WindowsにMicrosoft VisualC++ 2005 Redistributable を設定しています。しばらくお待ちください。必要な情報を集めています。」というダイアログが30秒ほど出てから消えてしまうだけです。プログラムの追加と削除の項目を見てみたところ、Microsoft VisualC++ 2005 Redistributableというものがあったのでインストールできているものと思いたいですが…。仮にうまくインストールできていたとしても症状が改善されなくて困ってます。 私は正規品のvisualC++2005をインストールしたので、そもそもこのランタイムのインストールは必要ないような気もします…。 OSはWindowsXPです。コンピュータにあまり詳しくないので詳細の環境は何を書けばいいのかがよく分かりません。解決策よろしくお願いします。

  • 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 スキップ ========== どのようにすれば通るのでしょうか? 教えてください。よろしくお願いします。

  • opencvで画像上に丸を描画の方法

    opencv初心者です。 visualstudio2012 C++でopencvを動かすことはできているのですが、目的としてフルスクリーンに表示した画像の上に2点を丸でいいので表示したいのですが、画像しか表示されない、もしくは画像とは別のウィンドウで丸が表示される状態になっています。 // OpenCV2.4Sample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" //プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに // opencv2のあるフォルダ『C:\OpenCV\include』などを追加のこと #include "opencv2\opencv.hpp" #include <opencv2/core/core.hpp> #ifdef _DEBUG //Debugモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_core243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_imgproc243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_highgui243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_objdetect243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_contrib243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_features2d243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_flann243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_gpu243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_legacy243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_ts243d.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_video243d.lib") #else //Releaseモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_core243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_imgproc243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_highgui243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_objdetect243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_contrib243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_features2d243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_flann243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_gpu243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_legacy243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_ts243.lib") #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_video243.lib") #endif //int _tmain(int argc, _TCHAR* argv[]) int gazouhyouzi(){ //画像データの読込 IplImage* src_img = cvLoadImage("C:\\opencv\\samples\\c\\fruits.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); if (src_img == NULL){ std::exit(0); } //処理後画像データの確保 // IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels); //画像処理例(ガウシアンフィルタ) // cvSmooth(src_img, dst_img, CV_GAUSSIAN, 9); //表示ウィンドウの作成 cvNamedWindow("src",0); //srcというwindowをフルスクリーンに設定 cvSetWindowProperty("src",CV_WND_PROP_FULLSCREEN,CV_WINDOW_FULLSCREEN); //画像の表示 cvShowImage ("src", src_img); //キー入力待ち cvWaitKey (0); cv::Mat img = cv::Mat::zeros(500, 500, CV_8UC3); // 画像,円の中心座標,半径,色,線太さ,種類 cv::circle(img, cv::Point(100, 100), 20, cv::Scalar(200,0,0), -1, CV_AA); //画像データの解放 cvReleaseImage(&src_img); //全てのウィンドウの削除 cvDestroyAllWindows(); return 0; } とても見づらいとは思いますが間違っている部分の訂正をお願いしたく、投稿しました。 初心者なもので言葉の表現が間違っているかも知れませんが、よろしくおねがいします。 ちなみに上記のプログラムで実行すると、画像だけがフルスクリーンに表示されるだけです。

  • OpenCV2.0でView Morphing

    環境はVisual Studio 2008 Express, OpenCV2.0です。 サポートされない実験的な関数にあるビューモーフィング関数を使い、2枚の画像から中間の画像を生成し、ウインドウに表示させるプログラムを作りたいです。 このpdfファイル(http://www.hci.otago.ac.nz/downloads/ViewMorphing_full.pdf)内の「10. Appendix B - Image Morphing in OpenCV」という箇所にあるコードを、以下のような定型文で囲んでみたんですけど、コンパイル時に分からないエラーが沢山出てきて解決できずに困っています。 どこか根本的な部分が抜けていて間違っているような気がするので、あらかじめ必要な宣言が抜けているとか、間違っていることに気づいた方がいらっしゃれば何でもいいので教えてください。よろしくお願いします。 #include <cv.h> #include <highgui.h> #include <cvaux.h> #pragma comment(lib, "cv200.lib") #pragma comment(lib, "highgui200.lib") #pragma comment(lib, "cvaux200.lib") int main(int argc, char** argv[]) { IplImage* morphedImage; IplImage* leftImage; IplImage* rightImage; cvNamedWindow("出力画像"); leftImage = cvLoadImage("left.jpg"); rightImage = cvLoadImage("right.jpg"); //------------------------------------------- ここに処理を入れる //------------------------------------------- // 表示ウインドウに画像を表示 cvShowImage("出力画像", _morphedImage); // キー入力待機 cvWaitKey(0); //表示ウインドウの破棄 cvDestroyWindow("出力画像"); cvReleaseImage(&leftImage); cvReleaseImage(&rightImage); cvReleaseImage(&morphedImage); //画像領域の解放 return 0; }

  • OpenCV2.3 のエラー

    Open CV2.3をVisual Studio2013 expresssに設定しました。 が、プログラムを実行すると 「エラー 3 error LNK1107: ファイルが無効であるか、または壊れています: 0x10B000 を読み取れません。 C:\Program Files\opencv\build\x64\vc10\staticlib\IlmImf.pdb...」 と表示されてしまい、困っています。 エラー原因は[リンカー]-[入力]-[追加の依存ファイル]の設定でしょうか。 当初、libとstaticlibフォルダの中にある、拡張子pbdを含む、重複なしのすべてのファイルを[追加の依存ファイル]に設定していましたが、これがエラーの原因かと思い、 libとstaticlibフォルダ内の、拡張子libのみに修正しました。 が、同じエラーが依然として出ています。 プログラムは以下の内容で、単純に画像を表示させるだけのものです。 ============================================= #include <cxcore.h> #include <cv.h> #include <highgui.h> int _tmain(int argc) { IplImage *src_img = 0, *dst_img; // (1)画像を読み込む src_img = cvLoadImage("C\\Users\\...\\thNDM091S8.jpg", CV_LOAD_IMAGE_COLOR); // (6)画像の表示 cvNamedWindow("Fitting", CV_WINDOW_AUTOSIZE); cvShowImage("Fitting", src_img); cvWaitKey(0); cvDestroyWindow("Fitting"); cvReleaseImage(&src_img); return 0; } ============================================== どこを直せばいいでしょうか。 いろいろと調べましたがわかりませんので、教えていただけると助かります。 よろしくお願いいたします。

  • opencv1.0 画面が真っ黒

    以前までXPを使用しVisual C++ 2008にopencv1.0を導入し、USB接続のwebカメラから 画像をキャプチャしリアルタイムでの画像処理などのプログラミングしていたのですが、 このたびOSをXP(32bit) からwindows7(64bit)に変え、前使っていた環境つまり Visual C++ 2008 opencv1.0 で設定したところ、コンパイルは正常にでき、普通にpng画像などを取り込むような画像処理は可能なのですが、webカメラからの画像が読み込めず、真っ黒な画像が表示されてしまいました。 ちなみに実行したプログラムはXPの時には正常に作動していたものと同じものを実行しています。 また、webカメラ自体はamcapなどのソフトを使い動作させることはできます。 自分なりに考えた問題点は、 プログラムに問題がある、またはvisualC++を2010にする、opencvを2.2などの最新版に 更新するなどがあげられますが、 この場合なにが原因として考えられるのでしょうか? その点アドバイスいただけたらうれしく思います。 よろしくお願いします。 実行したプログラムは以下の通りです(取り込んだ画像を表示しているだけの、シンプルなプログラムです。直すところなどありましたら教えてください。) *************************************************** #include <cv.h> #include <highgui.h> #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib") int main(int argc, char** argv){ int key; CvCapture* capture; capture=cvCreateCameraCapture(-1); IplImage *frameImg =cvQueryFrame(capture); cvNamedWindow("Capture" ,CV_WINDOW_AUTOSIZE); while(1){ cvShowImage("Capture",frameImg); key = cvWaitKey(1); if(key=='q') break; } cvReleaseCapture(&capture); cvDestroyWindow("Capture"); return 0; } ****************************************************

  • 実行結果をフォルダに格納

     aviファイルの動画を1フレームずつの画像に分けていくプログラムを作りました。  hogehoge%05d.jpgで画像ファイルを生成していくようにしているのですが、この実行結果から得られた画像を、すべてフォルダに格納するように改良したいのです。どうしたらいいでしょうか?  プログラムは以下です。 ------------------------------- /* 警告warningを出なくする */ #pragma warning(disable : 4996) #pragma warning(disable : 4244) /* リンクするOpenCVライブラリ指定 */ #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"cv.lib") #pragma comment(lib,"highgui.lib") //#pragma comment(lib,"ipl.lib") #include <stdio.h> #include <stdlib.h> #include <string.h> #include "cxcore.h" #include "cv.h" #include "image.h" //読み込む動画ファイル名 char* filename="result1.avi"; //IplImage IplImage* src; int main(){ CvCapture* capture = NULL; int key; //キー入力 int fileCount; char fileName[256]; //指定したAVIファイルが見つからない場合 if(NULL==(capture = cvCaptureFromAVI(filename))){ fprintf(stderr,"指定のaviファイルが見つかりませんでした."); return -1; } //画像表示ウィンドウの準備 cvNamedWindow("Source Image", CV_WINDOW_AUTOSIZE); //画像表示ウィンドウの出現位置指定 cvMoveWindow("Source Image", 50, 50); //処理ループの開始 for(fileCount = 1;;fileCount++){ //AVIファイルからフレーム画像を取り出す if(NULL==(src=cvQueryFrame(capture))){ break; } //画像表示 cvShowImage("Source Image", src); //画像保存 sprintf(fileName,"hogehoge%05d.jpg",fileCount); cvSaveImage(fileName, src); // //キー入力 key = cvWaitKey(10); //ESCキーを押すと終了 if(key==0x1b) break; } //解放 cvReleaseCapture(&capture); cvDestroyWindow("Source Image"); return 0; } ---------------------------------

  • OpenCVでのビット数のカウント

    はじめまして。今回皆様のお力をお借りしたく質問させて頂きました。 どうぞ宜しくお願いします。 私は今OpenCV1.1を使って、2枚のエッジ処理して2値化された画像の差分を取り、変化しているビット数をカウントして表示させるというプログラムを作っています。 しかし、デバッグするとエラーが出てしまい、失敗してしまいます。 どこに問題があるのでしょうか? プログラム初心者のため、初歩的なミスをしているのかもしれません。 開発環境はMicrosoft Visual C++ 2010です。 以下にプログラムを載せておきます。 #include "stdafx.h" #include <cv.h> #include <highgui.h> #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib") /* 背景画像のファイル名 */ #define INPUT_FILE1 "5×5medcanny.bmp" /* 対象画像のファイル名 */ #define INPUT_FILE2 "Fire5×5medcanny.bmp" /* 差分画像のファイル名 */ #define OUTPUT_DIFF_FILE "diff.bmp" #define WIDTH 352 #define HEIGHT 288 int _tmain(int argc, _TCHAR* argv[]) { // 画像変数宣言 IplImage *img_in1, *img_in2, *img_diff; cvNamedWindow("期待値画像"); // 表示ウィンドウの作成 cvNamedWindow("比較画像"); cvNamedWindow ("差分画像", CV_WINDOW_AUTOSIZE); img_in1 = cvLoadImage(INPUT_FILE1); // 画像ファイルの読み込み img_in2 = cvLoadImage(INPUT_FILE2); if(img_in1 == NULL || img_in2 == NULL) // ファイルが読み込めない場合 { printf("ファイルが読み込めません。\n"); cvWaitKey(0); // キー入力待機 return -1; } // 画像領域の確保 img_diff = cvCreateImage(cvSize(img_in1->width, img_in1->height), IPL_DEPTH_8U, 1); // 期待値画像と比較画像の差分 cvAbsDiff(INPUT_FILE1, INPUT_FILE2, OUTPUT_DIFF_FILE); // 差分画像ファイルの読み込み img_diff = cvLoadImage(OUTPUT_DIFF_FILE); // 差分画像の画素数の取得 IplImage img_hdr; IplImage *dst_img = cvGetImage (img_diff, &img_hdr); // 差分画像の画素数のカウント int count = 0; count += cvCountNonZero(dst_img); printf("%d\n",count);     cvShowImage("期待値画像", img_in1); // 表示ウィンドウに画像を表示 cvShowImage("比較画像", img_in2); cvShowImage("差分画像", img_diff); cvSaveImage("Image_diff.bmp", img_diff); // 出力画像の保存 cvWaitKey(0); // キー入力待機 cvDestroyAllWindows(); // すべての表示ウィンドウの破棄 cvReleaseImage(&img_in1); // 画像領域の解放 cvReleaseImage(&img_in2); cvReleaseImage(&img_diff); cvReleaseImage(&dst_img); return 0; }

専門家に質問してみよう