push_back opencv中输入参数的格式不匹配

Formats of input arguments do not match in push_back opencv

本文关键字:参数 格式 不匹配 输入 back opencv push      更新时间:2023-10-16

我有一个大小为[2500 x 1]的矩阵a。现在我想在矩阵的开头加一个[1],这样矩阵的新大小就是[2501x1]。我写了以下代码:

cv::Mat X = cv::Mat::ones(1, 1, CV_64FC1);
cv::Mat imgBlock =  testImage(rect);
        cv::Mat yy = imgBlock.clone();
        cv::Mat xx = yy.reshape(0, 2500);
X.push_back(xx);

但当我执行代码时,opencv抛出了一个错误:

C: \Users\ankitk\Documents\Visual Studio 2015\Projects\spt\Release>sptOpenCV错误:输入参数的格式与中的()不匹配cv::Mat::push_back,文件C: \builds\master_PackSlave-win32-vc12-shared\opencv\modules\core\src\matrix.cpp,823行–

我可能做错了什么?

收到错误消息的原因是XtestImage的类型不匹配。您只能组合相同类型的矩阵(如文档中所述)。

当你运行这个代码

std::cout << X.type() << std::endl;
std::cout << imgBlock.type() << std::endl;

您将得到两个不同的数字作为输出。

您需要更改X的类型以匹配图像的类型,或者将testImage转换为CV_64FC1,然后才能添加数字。