gpt4 book ai didi

c++ - 如何在OpenCV中比较两个Mats列

转载 作者:行者123 更新时间:2023-12-02 17:00:57 30 4
gpt4 key购买 nike

我想知道如何比较两个垫子的列

这是在做什么

 cv::Mat M(2,2, CV_8UC3, cv::Scalar(0,0,255));
cv::Mat M2(2,2, CV_8UC3, cv::Scalar(0,0,255));

for(int c = 0; c < M.cols; c++ ){
if( M.col(c) == M2.col(0) ){ // error

}

}

出现错误
error: no viable conversion from 'cv::MatExpr' to 'bool'

所以如何比较列,因为我必须对两个图像进行逐列比较,所以当我将第二个图像附加到第一个图像时,我要确保将其附加在第一个图像的最后一列所在的位置等于第二张图片中的某处,从而消除了重复部分。

最佳答案

您可以检查两个矩阵是否与here相同。

您可以传递列而不是整个矩阵:

bool are_equal(const cv::Mat& a, const cv::Mat& b)
{
return (cv::sum(a != b) == cv::Scalar(0, 0, 0, 0));
}


int main()
{
cv::Mat3b a(3, 3);
cv::Mat3b b(3, 3);

cv::randu(a, 0, 9);
cv::randu(b, 0, 9);

bool same_columns = are_equal(a.col(1), b.col(2));
}

关于c++ - 如何在OpenCV中比较两个Mats列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61141410/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com