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

时间:2016-05-01 06:28:32

标签: c++ opencv image-processing

我有一个大小为[2500 x 1]的矩阵A.现在我想在矩阵的开头添加[1],使矩阵的新大小为[2501 x 1]。以下代码我写了:

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> spt   OpenCV错误:输入参数的格式不匹配()   cv :: Mat :: push_back,file   C:\建立\ master_PackSlave-Win32的VC12共享\的OpenCV \模块\芯\ SRC \ matrix.cpp,   823行 -

我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

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

运行此代码时

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

你会得到两个不同的数字作为输出。

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