2017-02-13 170 views
-1

我试图运行以下代码并将RGB图像转换为YCbCr颜色模型。但是当构建这个代码段时,会出现上述错误。我附上了截图。你可以参考并给我一个解决方案。名称必须是名称空间名称Visual Studio错误

#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; 
} 

enter image description here

+0

这意味着没有命名空间'cv2'存在。我想你可以不用'cv2.'来调用'cvtColor()'。 – Soeren

+0

在C++中,名称空间不是用于点而是与'cv :: cvtColor(src1,cv :: COLOR_BGR2YCR_CB)一样''' –

回答

3

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

只是删除行:

using namespace cv2; 

,并在代码中不使用它,例如:

Mat imgYCC = cvtColor(src1, COLOR_BGR2YCR_CB); 
相关问题