2014-01-16 89 views
0

我在C++中很新颖,我试图使用OpenCV提供的一些库。问题是,当我把下面的代码,它说:错误:使用OpenCV时Mat不明确

Error: Mat is ambiguous

,这是我在其他职位已经阅读这意味着,编译器无法选择哪些功能选择,但这正是它是怎么叫的OpenCV教程也是如此。 http://docs.opencv.org/doc/tutorials/introduction/display_image/display_image.html

Mat A; 

编辑:我已经写到现在的代码是在.h文件:

#pragma once 
#include <E:\opencv\build\include\opencv2/highgui/highgui.hpp> 
#include <E:\opencv\build\include\opencv2/core/core.hpp> 

using namespace cv; 
class Face_Detection 
{ 
public: 
    Face_Detection(); 

    ~Face_Detection(); 

}; 
int main(){ 

    cv::Mat image; 
    //A = imread(argv[1], CV_LOAD_IMAGE_COLOR); 

    return 1; 
} 
+1

你写的''主要在()你的头文件? – herohuyongtao

+0

我认为它可能不是最好的想法,但我来自java,其中至少有一个文件是我用它来工作的,所以我尽量使它尽可能简单。但是,那是为什么我有这个错误? – user2466854

回答

5

您可以包括其他的lib /文件还定义了一个Mat型。尝试使用,即通过明确添加其命名空间cv

cv::Mat A; 

来避免歧义。


编辑:

包括你的OpenCV头文件的方式让我觉得你没有正确使用OpenCV的。尝试首先按照以下文章正确设置OpenCV,包括include/library/...

+0

非常感谢。它似乎工作。只有2个问题。为什么它需要在前面的简历,即使我已经包含了教程中的文件呢?其次它表示预计会有一个“;”即使我已经把它。非常感谢您的时间 – user2466854

+0

@ user2466854对于第一季度:就像在答案中所说的那样,您需要避免模棱两可。对于第二季度:您是否已经安装了OpenCV? – herohuyongtao

+0

我已经下载了.exe文件,如果这是你的意思,它会提取这些文件。并通过我所包含的两个文件。我的代码是精确的,就像在本教程的网站一样,直到垫图像的行。 – user2466854