push_back opencv中输入参数的格式不匹配
Formats of input arguments do not match in push_back opencv
我有一个大小为[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行–
我可能做错了什么?
收到错误消息的原因是X
和testImage
的类型不匹配。您只能组合相同类型的矩阵(如文档中所述)。
当你运行这个代码
std::cout << X.type() << std::endl;
std::cout << imgBlock.type() << std::endl;
您将得到两个不同的数字作为输出。
您需要更改X
的类型以匹配图像的类型,或者将testImage
转换为CV_64FC1
,然后才能添加数字。
相关文章:
- C++fmt库,只使用格式说明符格式化单个参数
- clang 格式堆叠所有 if 语句参数,如果它们太长
- clang 格式:始终断开所有参数,每行一个
- 当超出列时,clang格式强制每个参数/参数拥有自己的行?
- 中断长代码 snprintf 格式和参数
- 使用宏定义打印格式参数
- 查找可变参数列表的字符串格式指定符
- 保留短 lambda 用作函数的中间参数,使用 clang 格式保持不变
- sscanf 格式参数不起作用
- sscanf_s:格式字符串"%d"需要类型为"int *"的参数,但可变参数 4 的类型为"WORD *"
- 格式“%lf”期望“ double *”类型的论点,但参数2具有“ poly term **”类型
- 警告:格式"%d"需要类型为"int*"的参数,但参数5的类型为"in
- C4477: 'fprintf' :格式字符串 '%s' 需要类型为"char *"的参数,但可变参数 1 的类型为"int *"
- 执行带有参数的 .bat 文件并以 C++ 格式读取控制台输出
- 警告:格式"%5f"需要类型"double",但参数3的类型为"int
- 如何将 GCC 的 printf 格式属性与 C++11 可变参数模板一起使用?
- "%p 格式说明符的参数类型是 'void*'"是什么意思?
- 默认参数之后的可变参数格式是否正确
- 抽象函数参数格式及其对性能的影响
- 程序的参数格式有标准吗?