什么是OpenCV HighGUI名称空间?

什么是OpenCV HighGUI名称空间?,opencv,namespaces,Opencv,Namespaces,如果我不使用任何名称空间,我的代码就可以正常工作,但是当我尝试使用具有如下名称空间的方法时: cv::nameOfMethodInHighGUI() 编译器告诉我,cv没有这样调用的成员方法 所以我认为highgui.h和cv.h有不同的名称空间,对吗 有人能告诉我应该使用什么名称空间从头文件highgui.h调用方法吗?所有opencv函数都包含在名称空间cv中 因此,要显示图像,您可以使用cv::imshow(在opencv>2上)查看highgui.h我有以下想法: 可能您不小心将老式的和

如果我不使用任何名称空间,我的代码就可以正常工作,但是当我尝试使用具有如下名称空间的方法时:

cv::nameOfMethodInHighGUI()

编译器告诉我,
cv
没有这样调用的成员方法

所以我认为
highgui.h
cv.h
有不同的名称空间,对吗


有人能告诉我应该使用什么名称空间从头文件
highgui.h
调用方法吗?

所有opencv函数都包含在名称空间cv中


因此,要显示图像,您可以使用cv::imshow(在opencv>2上)

查看
highgui.h
我有以下想法: 可能您不小心将老式的和新的OpenCV2包含头混合在一起(因为两者都是随OpenCV2+库提供的)

我建议只使用

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

它们在
cv
名称空间中拥有所有函数。

这是我的想法,但如果我这样调用方法:cv::cvShowImage(imagePath.c_str(),frame);我得到了这个编译器错误:“cvShowImage”不是“cv”的成员,这是因为它现在是
cv::imshow()
,正如文档(对于2.3)中所解释的:是的,但是如果使用名称空间,函数的“cv”前缀将被取消!一些函数被重命名。