我有两个 cv::Mat 实例:m1 和 m2。它们具有相同的数字类型和大小。
OpenCV 中是否有任何函数可以返回矩阵是否相同(具有所有相同的值)?
正如 Acme 提到的,您可以使用cv::compare尽管它并不像您希望的那么干净。
在下面的示例中,cv::compare
是通过使用调用!=操作员:
// Get a matrix with non-zero values at points where the
// two matrices have different values
cv::Mat diff = a != b;
// Equal if no elements disagree
bool eq = cv::countNonZero(diff) == Scalar(0,0,0,0);
如果您知道类型,则可以使用 STLequal功能。 Mat 迭代器负责处理数据不连续的情况,并且您可以对多通道矩阵使用向量类型。
bool eq = std::equal(a.begin<uchar>(), a.end<uchar>(), b.begin<uchar>());
编辑:更新以处理多通道情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)