2012-02-15 23 views
1

私は私のコードは正常に動作します任意の名前空間を使用しない場合、私はこのような名前空間を持つメソッドを使用しようとすると:OpenCV HighGUI名前空間とは何ですか?

cv::nameOfMethodInHighGUI()

コンパイラはcvはそのようと呼ばれる全くメンバメソッドを持っていないことを私に伝えます。

だから私はhighgui.hcv.hが異なる名前空間を持っていると思っています。

誰でも、私がヘッダファイルからメソッドを呼び出すために使用する必要があるネームスペースを教えてください。highgui.h

答えて

3

すべてのopencv関数は、名前空間cvにenvolveします。ですから、CVを使用することができ、画像を表示する

::(OpenCVの> 2上)関数imshow

+0

これは私が思ったものですが、私がこのようなメソッドを呼び出すと、 cv :: cvShowImage(imagePath.c_str()、frame); 'cvShowImage'は 'cv'のメンバーではありません – Matteo

+3

これは、ドキュメント(2.3)で説明されているように 'cv :: imshow()'になったからです。http://opencv.itseez .com/modules/highgui/doc/user_interface.html#imshow –

+0

はい、ただし、名前空間を使用すると、fuctionsの "cv"接頭辞が消えます!また、一部の機能の名前が変更されています。 –

0

highgui.hを見てから、私は、次のアイデアがあります をたぶん偶然昔ながらを混合しており、新しいOpenCV2には、ヘッダー(両方ともOpenCV2 +ライブラリに同梱されています)。

私は、彼らがcv名前空間内のすべての機能を持っている

#include<opencv2/core/core.hpp> 
#include<opencv2/highgui/highgui.hpp> 

を使用してのみお勧めします。