opencv 3.2 cv :: compare中可能存在的错误

时间:2017-06-27 04:04:11

标签: c++ opencv

我调用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);

0 个答案:

没有答案