如何返回与被比较矩阵相同类型的比较矩阵

how to return comparison matrix with same type as compared matrices

本文关键字:比较 同类型 何返回 返回      更新时间:2023-10-16

关于cv::compare的openCV文档声明输出数组(函数描述中的dst)与正在比较的两个输入数组的大小和类型相同。这不是我所看到的,因为它总是返回一个UINT8矩阵,'255'作为逻辑1,'0'为逻辑0。例如,两个类型为CV_32FC1的矩阵具有相同的数据,并运行以下代码:

cv::compare(I, J, dst, cv::CMP_EQ);

结果是一个充满'255'的UINT8矩阵。

  1. 为什么这与描述不同?
  2. 是否有可能返回一个逻辑矩阵,逻辑1为'1',逻辑0为'0',与输入矩阵的类型相同(不使用输出矩阵上的convertTo,然后除以255)?
  3. 如果我们讨论oclMat矩阵,问题1-2的答案如何变化?

这和下面的解释是一样的

当比较结果为true时,输出数组对应的元素被设置为255。

看一下矩阵表达式,你应该能够在数组上缩放或执行布尔乘法。表达式

编辑:https://github.com/Itseez/opencv/commit/a7160d9b128fed82e4eea728ceb95eab1b085f00没有办法改变这一点,它是按照本文档更新的预期工作