OpenCVのhighgui.hを使おうとするとエラーが発生する

このQ&Aのポイント
  • WindowsXPでVisual Studio.NETを使用している場合、OpenCVのhighgui.hを使用しようとすると構文エラーが発生します。
  • highgui.hを追加すると、別のファイルで予期しないトークンエラーや構文エラーが発生します。
  • プロジェクトのリンク設定などを確認しましたが、原因が分からないため助言を求めています。何かヒントがあればお願いします。
回答を見る
  • ベストアンサー

0pen CV のh ighgui.hを使おうとするとエラーがでます

c++のプログラムの編集をしています。 環境はwindowsXPでVisual Stdio. NETを使っています。 既存のプログラムに0penC Vを使う機能を付け足したいのですが、 #include <highgui.h>一行を追加すると別の.hファイル中の TYPE max(); TYPE absmax(); (※ただし#define TYPE double) という部分で『:の前に予期しないトークンがありました。関数の本体は無視されます』というエラーや『かっこ)やカンマ;がない』といった構文エラーがでてしまいます。 上記は# include <h ighgui.h>の一行を付け加えただけでコンパイルした場合です。 付け加えない場合はもちろん正常に動きます。 また、# include <cv.h>を加えてもコンパイラは通りました。 0penCVの実装環境としてのリンクの設定などは何度もチェックして間違っていないと思います。 (プロジェクトが大きいのでプログラム全体は載せられません。) h ighgui.hにmax関数とかがあるんでしょうか? 原因がまったくわからず困っています。 なにかヒントになるようなことでもいいのでアドバイスをお願いします。

  • rumya
  • お礼率50% (6/12)

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

highgui.hからwindows.hをインクルードしています max( )がwindowsで定義されているマクロと重複したためでしょう

rumya
質問者

お礼

アドバイスありがとうございます。 エラーがでた.hファイルのmax()をm_max()と変更したらコンパイルできるようになりました。 ありがとうございましたm(_ _)m

関連するQ&A

  • #include "_cv.h"の設定を教えて

    VisualStudioC++2010を用いて、#include "_cv.h"を使用したいのですが、ファイルが存在する場所 「C:\Program Files\OpenCV\cv\src」を追加のインクルードファイルに入れても以下のエラーがでます。 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C2146: 構文エラー : ';' が、識別子 'icvDepthToDataType' の前に必要です。 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C2433: 'CvDataType' : 'inline' はデータ宣言をするのに使用できません。 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ・・・・・ どなたか#include "_cv.h"の設定の仕方を教えてくれないでしょうか?

  • Open CVについて

    現在Open CVを用いて,VC++2008 ExpressのWindows Formアプリケーションを作成しています。 main_formのpictuteBoxにUSBカメラから画像を取得して表示し,sub_formはアプリケーションの設定用フォームで,USBカメラの解像度などの情報を取得して表示しようとしています。 main_form.hの先頭部分に以下のように記述しています。 #include <cv.h> #include <highgui.h> #include "sub_form.h" CvCapture *capture1 = 0; sub_formの先頭部分に以下のように記述しています。 #include "main_form.h" #include <cv.h> CvCapture *capture2 = 0; 上記のように記述後,ビルド使用とすると, 『...\sub_form.h(457) error C2065: 'CvCapture' : 定義されていない識別子です。』 と,sub_formのみでエラーが出てしまいます。 cv.hをインクルードしているのに,なぜこのようなエラーがでてしまうのでしょうか? お分かりになる方がいらっしゃいましたら,ご教授宜しくお願い致します。

  • OpenCVのリンクエラー

    Windows XP, Visual C++ 6.0の環境でOpenCVを始めました。OpenCVに含まれるサンプルのビルドにおいて「kalman.obj : error LNK2001: 外部シンボル "_cvDestroyWindow" は未解決です」等のエラーが発生します。初歩的な問題で申し訳ありませんが解決法を教えて下さい。尚、Visual C++のツール->オプション->ディレクトリには以下を加えております。 インクルード C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\CVAUX\INCLUDE C:\Program Files\OpenCV\OTHERLIBS\CVCAM\INCLUDE C:\Program Files\OpenCV\otherlibs\highgui ライブラリ C:\Program Files\OpenCV\lib C:\Program Files\OpenCV\otherlibs\highgui

  • VC++、windows.hのincludeエラー

    最近C++を勉強し始めたのですが出だしからつまづいてしまいました。 Visual Studio 2010 SP1 + Windows SDK 7.1 (OS:windows7 Professional 64bit版)を使用しているのですが、#include <windows.h> のみでビルドを行ったところ以下のように driverspecs.h でエラーが生じてしまいました。 1>c:\program files\microsoft sdks\windows\v7.1\include\driverspecs.h(356): error C2143: 構文エラー : ')' が '(' の前にありません。 1>c:\program files\microsoft sdks\windows\v7.1\include\driverspecs.h(356): error C2091: 関数は関数を返せません。 1>c:\program files\microsoft sdks\windows\v7.1\include\driverspecs.h(356): error C2059: 構文エラー : ')' <中略> 1>c:\program files\microsoft sdks\windows\v7.1\include\driverspecs.h(699): fatal error C1003: プログラム内のエラーが 100 個を超えました。コンパイルは中断されます。 1> 1>ビルドに失敗しました。 以下に driverspecs.h ファイルのエラー部分を抜粋して載せておきます。 __ANNOTATION(SAL_functionClass(__in char *);) #define __drv_functionClass(x) \ __drv_out(__drv_declspec("SAL_functionClass(\""#x"\")")) まだ始めたばかりで知識も乏しく、どのように対処をしていいものか困っています。 何か解決の糸口になるようなヒントでも構いませんので教えて頂けると助かります。 よろしくお願いします。

  • 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の両方で試しましたが同じ結果がでます。

  • ビルドエラー(C1083)について

    c++初心者です。 先日学校の課題用に配布された画像処理プログラム(C++)を実行しようとしたのですが、 ビルドエラーが出てしまい、色々調べてみたのですが解決法がわかりません。 エラーの内容は、 fatal error C1083: include ファイルを開けません。'cv.h': No such file or directory というものです。 使用しているのは Microsoft visual c++ 2008 express edition OpenCV です。 また、インクルードファイルには ・C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\ml\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリファイルには ・C:\Program Files\OpenCV\lib を追加し、pathにも ;C:\Program Files\OpenCV\bin\ が追加してあります。 プログラム上の問題ではなく申し訳ないのですが、よろしくお願いします。 OSはvistaです。

  • カメラキャリブレーションのプログラムについて質問です

    んにちは。只今レポート課題でopenCVを使ったカメラキャリブレーションの課題をやっています。 しかしエラーが出てきてとても困っています。エラーの内容は「1>C:\Program Files\OpenCV\cv\include\cv.h(58) : fatal error C1083: include ファイルを開けません。'cxcore.h': No such file or directory」 という内容です openCVをインストールしてPathを変更してライブラリに追加したりと、しっかり下準備をしたのですがどうしても上のようなエラーが出てしまいます。 どうすればエラーが治るのでしょうか。誰か教えてください。お願いします。 ちなみに環境はvisual studio C++ 2005 Express Editionです。Visual C++のツール>オプション>VC++ディレクトリには 以下を加えております。 インクルードファイルには C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリファイルには C:\Program Files\OpenCV\bin C:\Program Files\OpenCV\lib を入力しています。 プロパティ>構成プロパティ>リンカ>入力>追加の依存ファイルにはcv.lib cxcore.lib highgui.lib cvaux.lib cvcam.libを入力しています

  • stdio.hからsyntax error??

    10日でおぼえるC言語教室という書籍を購入し、その通りにシステム環境変数の設定を行ったのですが、stdio.hに対してNo such file or directoryの様な?文が出てきてしまいました。 そこで自分なりに調べた結果、ネット上にC_INCLUDE_PATHとCPLUS_INCLUDE_PATHも追加で設定する必要があると書いてありました。 この時点ですでに???ですが…とりあえずやってみたところNo such~のエラーはでなくなりました。 ただ、代わりにsyntax errorなどの様なエラーが沢山出てきてしまいました。(しかし、exeファイルは出来ていて実行は可能です) 自分で書いたコードなら書き間違いだと思うのですが、stdio.hは付属のCDーROMからのものなのでミスは無いと思うのですが… OSはvistaで、CドライブとDドライブが入っているものです。 この書籍でのCコンパイラはMinGWです。書籍付属のCD-ROMからmingw-jpを任意の場所(今回はDドライブ→新規→プログラム→MinGWの中)にコピーしてシステム環境変数pathの設定を行うとgccでコンパイルが可能というものです。 ちなみにシステム環境変数pathに設定したbinというフォルダがあるのは、mingw-jpの中で、場所はDドライブ→新規→プログラム→MinGW→mingw-jp→binです。 変数pathに追加したのは ;D:\新規\プログラム\MinGW\mingw-jp\bin; です。 C_INCLUDE_PATHとCPLUS_INCLUDE_PATHは両方ともD:\新規\プログラム\MinGW\mingw-jp\includeと記述しました。stdio.hはincludeのフォルダの中にちゃんとありました。 実際はmingw-jpの中にcodeというフォルダを作り、その中にhelloというフォルダを作り中にhello.cを記述してあります 以下がエラーの一部です D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:206: error: syntax error before "size_t" D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:217: error: syntax error before "size_t" D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:218: error: syntax error before "__gnuc_va_list" D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:219: error: syntax error before "__gnuc_va_list" D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:220: error: syntax error before "__gnuc_va_list" D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:221: error: syntax error before "size_t" D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:224: error: syntax error before "size_t" D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:226: error: syntax error before "size_t" 実際はまだまだエラーが続いてます ここで 1.書籍にはシステム環境変数pathの設定のみしか書いてありませんでしたが、上記のNO~というエラーが出てしまいます。私の設定の仕方が悪いのでしょうか 2.C_INCLUDE_PATHとCPLUS_INCLUDE_PATHを追加すると1のエラーは無くなりましたがこれってどういう事なのでしょうか 3.stdio.hに対してエラーが沢山出ていますが、これって何なのでしょうか 4.syntax errorが出ているのに実行ができるのは何故なのでしょうか 5.この方面は素人同然なので文中の解釈が変かもしれませんが、ご指摘があればお願いします 自分でも調べてみましたがお手上げ状態です。助けていただければ幸いです

  • string.h内でエラー

    Visual C++ 2005でプログラムを組んでいます。 あるプログラムをビルドすると以下のようにstring.h内でエラーが大量に発生します。string.hをインクルードしないとエラーは出ないことからおそらくstring.hまわりの設定がおかしいとは思うのですがよくわかりません。 エラー 2 error C2144: 構文エラー : 'char' は ')' によって先行されなければなりません。c:\program files\microsoft visual studio 8\vc\include\string.h 136 エラー 3 error C2144: 構文エラー : 'char' は ';' によって先行されなければなりません。c:\program files\microsoft visual studio 8\vc\include\string.h 136 エラー 5 error C2143: 構文エラー : ';' が ',' の前にありません。c:\program files \ microsoftvisualstudio8 \ vc\ include\ string.h 136 宜しくお願いします。

  • VisualStudio C++の初期設定で困っています。

    Visual Studio C++でOpenCVを使って、画像処理系のプログラムの練習をしています。 家のパソコンは初期のvistaを使っていてそこでは出来たんですが、 2台目のWindows7搭載型のノートではエラーが出て進みません。 エラー内容は fatal error LNK1104:ファイル'highgui.h'を開くことができません。 とでます。 ソースは #include "highgui.h" #include "cv.h" int main(int argc, char** argv){ cvNamedWindow("sample"); IplImage* src = cvLoadImage("sample.jpg"); cvShowImage("sample",src); cvReleaseImage( &src ); cvDestroyWindow("sample"); } 開発環境が7の64ビットに変わったからっていうのもあるのかと思っていますが、よくわかりません。エラーの内容で検索をかけてやってみたのですが、いまいちわからなかったので質問させてもらいました。よろしくお願いします。

専門家に質問してみよう