如何在opencv

时间:2016-04-27 08:52:20

标签: c++ qt opencv

我是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;
           }
        }

1 个答案:

答案 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