name 必须是命名空间名称 Visual Studio 错误

Posted

技术标签:

【中文标题】name 必须是命名空间名称 Visual Studio 错误【英文标题】:name must be a namespace name Visual Studio Error 【发布时间】:2017-02-13 07:36:40 【问题描述】:

我正在尝试运行以下代码并将 RGB 图像转换为 YCbCr 颜色模型。但是在构建此代码段时,会出现上述错误。我附上了截图。你能不能参考一下,给我一个解决方案。

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "iostream"
#include "opencv2/opencv.hpp"

using namespace cv;
using namespace cv2;
using namespace std;

int main()

    Mat src1;
    src1 = imread("face.jpg", CV_LOAD_IMAGE_COLOR);
    namedWindow("Original image", CV_WINDOW_AUTOSIZE);
    imshow("Original image", src1);

    Mat gray, edge, draw;
    //cvtColor(src1, gray, CV_BGR2GRAY);
    Mat imgYCC = cv2.cvtColor(src1, cv2.COLOR_BGR2YCR_CB);

    //equalizeHist(gray, draw);
    //Canny(gray, edge, 50, 255, 3);
    edge.convertTo(draw, CV_8U);
    namedWindow("image", CV_WINDOW_AUTOSIZE);
    imshow("image", imgYCC);

    waitKey(0);
    return 0;

【问题讨论】:

表示不存在命名空间cv2。我认为您可以在没有cv2. 的情况下致电cvtColor() 在 C++ 中,命名空间不与点一起使用,而是与 :: 一起使用,如 cv::cvtColor(src1, cv::COLOR_BGR2YCR_CB); 【参考方案1】:

命名空间cv2 不存在。它是 python 包装器的名称。

只需删除该行:

using namespace cv2;

并且不要在你的代码中使用它,例如:

Mat imgYCC = cvtColor(src1, COLOR_BGR2YCR_CB);

【讨论】:

以上是关于name 必须是命名空间名称 Visual Studio 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何不在生成的命名空间中包含 Visual Studio 项目文件夹名称

“类型或命名空间名称‘[Type]’在此范围内无效”Visual Studio 监视窗口中的错误?

MySql 在 Visual Studio 2012 中不起作用:找不到类型或命名空间名称“MySql”

项目默认的 XML 命名空间必须是在 Visual Studio 2017.0 中安装 .Net Core 3 后的 MSBuild XML 命名空间错误

窗体头文件中的“错误 C2653:系统不是类或命名空间名称”,Visual C++

错误:名称后跟 '::' 必须是类或命名空间名称