我是opencv的新手,我有一个opencv的问题,想要声明这个矩阵A = zeros (800,600,2)
我在opencv.org上做了seaerch我发现了这种类型的声明
int dim2[3] = {800,600,2};
Mat vv(3,dim2, CV_32F, Scalar::all(0));
但是当使用Qt进行调试时,它显示我的for循环和第二行的错误,所以我认为这是一个带有indeces和我的声明的issu,这是我的循环:
for(int i = 0; i < 800 ; i++)
{ for (int j = 0; j < 600; j++)
{
vv.at<double>(i,j,0) = - maxy + j * stepy;
vv.at<double>(i,j,1) = - maxz + (801 - i) *stepz;
}
}
答案 0 :(得分:1)
您的代码有错误。
Mat vv(3,dim2, CV_32F, Scalar::all(0));
这会创建一个float类型的矩阵,这里
vv.at<double>(i,j,0) = - maxy + j * stepy;
vv.at<double>(i,j,1) = - maxz + (801 - i) *stepz;
你把它称为双矩阵
要么将32F
更改为64F
,要么将double
更改为float