【问题标题】:opencv cv::max behavior unexpectedopencv cv::max 行为意外
【发布时间】: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,希望有人会注意到...

标签: c++ opencv max mat


【解决方案1】:

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

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

【讨论】:

  • 嗯,我明白了...我在那里打开了那个问题 ;)
猜你喜欢
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2021-04-18
  • 2012-01-21
  • 1970-01-01
相关资源
最近更新 更多