opencv cv::max 行为意外

Posted

技术标签:

【中文标题】opencv cv::max 行为意外【英文标题】:opencv cv::max behavior unexpected 【发布时间】: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,希望有人会注意到... 【参考方案1】:

这是一个错误,但现已修复。请参阅 http://code.opencv.org/issues/3696#note-7 以获取说明该错误已修复的评论。

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

【讨论】:

嗯,我明白了...我在那里打开了那个问题 ;)

以上是关于opencv cv::max 行为意外的主要内容,如果未能解决你的问题,请参考以下文章

关于“cameraMatrix”不是数字元组的cv2.stereocalibrate()错误

游戏开发大神“浅墨”《OpenCV3编程入门》作者毛星云“意外”离世

根据OpenCV中一个通道中的值查找最大颜色像素

mac本使用opencv打开摄像头导致python意外退出?

将灰度图像中的像素转换为黑色(OpenCV)会导致意外结果?

OpenCV 的奇怪行为