我有一个大小为[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行 -
我可能做错了什么?
答案 0 :(得分:1)
您收到该错误消息的原因是,X
和testImage
的类型不匹配。您只能组合相同类型的矩阵(如documentation中所述)。
运行此代码时
std::cout << X.type() << std::endl;
std::cout << imgBlock.type() << std::endl;
你会得到两个不同的数字作为输出。
您需要更改X
的类型以匹配图片类型,或者将testImage
转换为CV_64FC1
,然后才能添加该号码。