Opencv cv::max行为意外



我使用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错误:输入参数的大小不匹配(操作是无论是'a array op array'(数组具有相同的大小和类型),不是'数组op标量',也不是'标量op数组')在cv::binary_op, fileC: 2 _4_packslave-win32-vc构建opencvmodulescoresrc algorithm .cpp,第1021行

我的问题:这两个调用在理论上不应该具有相同的效果吗?这是实现上的缺陷还是我的误解?

编辑:

我在win7 x64上使用vs2012与OpenCV2.4.8 x86

这是一个错误,但现在已经修复。请访问http://code.opencv.org/issues/3696#note-7查看该错误已修复的评论。

注:cv::min存在等效问题

最新更新