9
:::c++
#include <opencv2/opencv.hpp>
#include <stdio.h>
int main(int argc, char** argv){
    int x = cv::CV_8UC4;
    std::cout << x;
    return 0;
}

私は実際に作成しようとしていますcv::Mat(r,c,cv::CV_8UC4,ptr,0)が、エラーを特定するために、上記を作成しました。g++ または clang++ でコンパイルすると、次のエラーが発生します (clang バージョン):

test.cpp:4:17: error: expected unqualified-id
int x = cv::CV_8UC4;
            ^
/usr/include/opencv2/core/types_c.h:584:17: note: expanded from macro 'CV_8UC4'
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
                ^
/usr/include/opencv2/core/types_c.h:578:32: note: expanded from macro 'CV_MAKETYPE'
#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
                               ^
/usr/include/opencv2/core/types_c.h:576:33: note: expanded from macro 'CV_MAT_DEPTH'
#define CV_MAT_DEPTH(flags)     ((flags) & CV_MAT_DEPTH_MASK)

エラーをグーグルで調べてもほとんど役に立ちませんでした。

4

1 に答える 1

21

じゃないcv::CV_8UC4ただのCV_8UC4

歴史的な理由と C バージョンとの相互運用性のため、マクロは cv:: 名前空間にありません。

于 2013-10-28T23:21:00.870 に答える