【问题标题】:name must be a namespace name Visual Studio Errorname 必须是命名空间名称 Visual Studio 错误
【发布时间】: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);

标签: c++ visual-studio opencv


【解决方案1】:

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

只需删除该行:

using namespace cv2;

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

Mat imgYCC = cvtColor(src1, COLOR_BGR2YCR_CB);

【讨论】:

    猜你喜欢
    • 2017-07-11
    • 1970-01-01
    • 2020-02-08
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2019-10-18
    • 2015-02-21
    相关资源
    最近更新 更多