【发布时间】:2014-05-14 17:25:23
【问题描述】:
我将cv::max 与未初始化的Mat 对象一起使用,当将未初始化的对象作为第一个参数传递时发生错误:
Mat a=Mat::ones(2,3, CV_32S);
Mat b;
max(a, b); // 1. OK
max(b, a); // 2. OpenCV Error
错误信息是:
OpenCV 错误:输入参数的大小不匹配(操作是 既不是“阵列操作数组”(其中数组具有相同的大小和类型), 在 cv::binary_op 文件中也不是 'array op scalar' ,也不是 'scalar op array') C:\builds\2_4_PackSlave-win32-vc 11-shared\opencv\modules\core\src\arithm.cpp,第1021行
我的问题:这两个调用不应该理论上具有相同的效果吗?这是实施不完善还是我的误解?
编辑:
我在 win7 x64 上使用带有 OpenCV2.4.8 x86 的 vs2012
【问题讨论】:
-
最让我惊讶的是,第一个没有崩溃
-
您能指定您使用的是哪个 OpenCV 版本吗?
-
@YuchenZhong 是opencv2.4.8,vs2012。请参阅我的编辑;)
-
@zhangxaochen , 做一个issue here ?
-
@berak,我在这里提出了一个问题:code.opencv.org/issues/3696,希望有人会注意到...