C++ opencv-如何返回与比较矩阵类型相同的比较矩阵

C++ opencv-如何返回与比较矩阵类型相同的比较矩阵,c++,opencv,matrix,C++,Opencv,Matrix,上的openCV文档说明输出数组(函数描述中的dst)的大小和类型与正在比较的2个输入数组相同。 这不是我看到的,因为它总是返回一个UINT8矩阵,其中“255”作为逻辑1,“0”表示逻辑0。 让我们以CV_32FC1类型的两个矩阵为例,它们具有相同的数据并运行以下代码: cv::compare(I, J, dst, cv::CMP_EQ); 结果是一个UINT8矩阵,其中满是“255” 为什么这与描述不同 是否可以返回一个逻辑矩阵,其中逻辑1为“1”,逻辑0为“0”,且类型与输入矩阵相同(在

上的openCV文档说明输出数组(函数描述中的dst)的大小和类型与正在比较的2个输入数组相同。 这不是我看到的,因为它总是返回一个UINT8矩阵,其中“255”作为逻辑1,“0”表示逻辑0。 让我们以CV_32FC1类型的两个矩阵为例,它们具有相同的数据并运行以下代码:

cv::compare(I, J, dst, cv::CMP_EQ);
结果是一个UINT8矩阵,其中满是“255”

  • 为什么这与描述不同
  • 是否可以返回一个逻辑矩阵,其中逻辑1为“1”,逻辑0为“0”,且类型与输入矩阵相同(在输出矩阵上不使用convertTo,然后再除以255)
  • 如果我们讨论oclMat矩阵,问题1-2的答案会发生怎样的变化

  • 它说,如果你往下看,与解释没有什么不同

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

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


    编辑:无法更改此项,因为它按照此文档更新的预期工作。

    它的Mat类型不同-无论输入矩阵是什么,它都返回UINT8 Mat,这需要额外的步骤转换逻辑矩阵,以便将其与其中一个输入矩阵相乘(为了将输入矩阵中不符合比较条件的所有元素归零,我想做一件常见的事情)。你是对的,不幸的是,我没有为你提供解决方案,因为事实证明文档已经过时。请看这里的提交,它说它正在按书面方式工作。