在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
如何修复异常?
谢谢
答案 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);