由于不同的"step"导致的 OpenCV 错误
OpenCV error due possibly to different "step"
我已经将一些代码从旧的Opencv转换为c++版本,在矩阵乘法时出错。
OpenCV Error: Sizes of input arguments do not match (The operation is neither
'array op array' (where arrays have the same size and the same number of channels),
nor 'array op scalar', nor 'scalar op array')
在网络上,这个错误似乎与不同数量的频道有关——我的频道都是1。
不过,我发现不同的是"步长">——一个是24,另一个是32。
这一步在哪里?
我使用创建了两个输入矩阵
cv::Mat YYY(3, 4, CV_64FC1); // step 32
cv::Mat XXX(3, 3, CV_64FC1); // step 24
然而,他们似乎有不同的步骤?
这可能是cv::multiply(XXX,YYY, DDD);
错误的罪魁祸首吗?
是否不可能在不同类型之间执行操作(如遮罩(?
感谢
cv::multiply()
执行两个矩阵的逐元素乘法。正如错误所述,您的矩阵大小不同。
您可能正在寻找矩阵乘法,它是通过*
运算符实现的。因此
cv::Mat DDD = XXX * YYY;
将正确编译和运行。
对于记录,这与step
字段无关(直接(,对于矩阵,它是列数乘以sizeof(double)
,因为矩阵的类型是CV_64FC1
。如果矩阵不是连续的,事情会变得更复杂,但事实并非如此。
相关文章:
- OpenCV 3 错误"CV_FOURCC":找不到标识符
- OpenCV 错误:相机校准:断言在matrix_wrap.cpp失败
- 使用 c++ 构建时出现 Opencv 错误
- OpenCV(3.4.1) 错误:断言失败(变暗 <= 2 && step[0] > 0) in cv::Mat::locateROI
- OpenCV 错误:断言失败 - 矩阵减去
- OpenCV 错误:断言在 cv::Mat 行 522 中失败
- OpenCV 错误的解决方案:不支持的格式或格式组合 - 当将 ORB 功能与 FlannBasedMatcher 匹配
- OPENCV.3.0错误:0xc0000005:访问违规读取位置0x00000000
- 在Raspberry Pi上构建时OpenCV错误
- OPENCV错误在XCode 8中加载Fisher面部识别器时
- OpenCV 错误:ERClassifierNM1 中的错误参数
- OpenCV 错误:断言失败(((((sizeof(size_t)<<28)|0x8442211)....957路
- 使用CV :: ML :: STATMODEL :: TRAIN使用KNN的OPENCV错误
- C++ / CannyEdgeDetection.exe 已停止工作 代码块 /OpenCV 错误:断言失败
- OPENCV错误在Ubuntu14.04上编译CAFFE-1.0时
- OPENCV错误:不良的参数(字节必须为16、32或64)在简介Descriptorextractorimpl中
- OPENCV错误:未指定的错误(未实现该函数)
- OpenCV 错误:“MAT”不是“cv”的成员
- 测试构建C++包装器时出现 OpenCV 错误
- 如何修复此 OpenCV 错误:断言失败((无符号)i < (无符号)cn) 在 cv::Vec<unsigned char,3>:::运算符 (), 文件