从数组创建Mat时,类型'cv :: Mat'和'int'不兼容

时间:2017-08-07 05:23:53

标签: c++ opencv

documentation on Mat中,它显示了如何使用逗号分隔的初始化程序创建Mat,如下所示:

// create 3x3 double-precision identity matrix
Mat M = (Mat_<double>(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1);

但是当我尝试时,它显示错误:

Types 'cv::Mat' and 'int' are not compatible

如何修复异常?

谢谢

1 个答案:

答案 0 :(得分:0)

您的代码没有问题

cv::Mat M = (cv::Mat_<double>(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1);

我可以确认它适用于gcc 5.4.0和OpenCV 3.1.0。应使用Matx创建固定大小的小矩阵:

typedef cv::Matx<double, 3, 3> Mat33d;
Mat33d m(1, 0, 0, 0, 1, 0, 0, 0, 1);