我调用cv :: compare与cv :: compare(_src1,_src2,_dst,op)
_src1是一个大小为rows = 4,cols = 1,type = 6
的矩阵_src2是一个大小为rows = 1,cols = 1,type = 6
的矩阵_dst是一个空矩阵
op = cv :: CMP_LT
该函数进入无限循环,然后在堆栈溢出时崩溃。 我发现在函数cv :: compare中,它调用函数cv :: checkScalar,如果它返回true,则再次调用cv :: compare。
cv :: checkscalar中的代码有一行当sz == Size(1,4)时,该函数返回true。因此,当我的输入是rows = 4,cols = 1时,函数cv :: compare进入无限循环。
我不确定这是一个错误还是我的实现不正确。
cv::Mat mat1 = cv::Mat::zeros(4, 1, CV_32F);
mat1.convertTo(mat1, CV_64F);
cv::Mat mat2 = cv::Mat::zeros(1, 1, CV_32F);
mat2.convertTo(mat2, CV_64F);
cv::Mat outmat;
cv::compare(mat1, mat2, outmat, cv::CMP_LT);