gpt4 book ai didi

ios - OpenCV 断言失败 CV_IS_MASK_ARR(mask)

转载 作者:行者123 更新时间:2023-11-28 22:41:44 28 4
gpt4 key购买 nike

我在一个示例 iOS 项目中使用一些通用的 OpenCV 函数,在调用 cvFindFundamentalMAT 函数时出现以下错误:

OpenCV Error: Assertion failed (CV_IS_MASK_ARR(mask) && CV_IS_MAT_CONT(mask->type) 
&& (mask->rows == 1 || mask->cols == 1) && mask->rows*mask->cols == count) in
cvFindFundamentalMat

错误似乎发生在这个函数上:

int calcFundamental(){

if(allPoints.size() != points_count) return -1;

// preparo la matrice delle corrispodenze

points1 = cvCreateMat(2,allPoints.size()/2,CV_32F);
points2 = cvCreateMat(2,allPoints.size()/2,CV_32F);
int count = std::max(points1->cols,points1->rows);
CvMat* status = cvCreateMat(1,count,CV_32F);
std::cout << "status->rows: " << status->rows <<"status->cols: " << status->cols << "count: "<< count << std::endl;
for(int j = 0; j < allPoints.size(); j++){

if(j%2==0){
std::cout << allPoints.at(j).x << ' ' << allPoints.at(j).y << std::endl;
cvSetReal2D(points1,0,j-(int)round(j/2),allPoints.at(j).x);
cvSetReal2D(points1,1,j-(int)round(j/2),allPoints.at(j).y);
}else{
std::cout << allPoints.at(j).x << ' ' << allPoints.at(j).y << std::endl;
cvSetReal2D(points2,0,j-(int)round(j/2)-1,allPoints.at(j).x);
cvSetReal2D(points2,1,j-(int)round(j/2)-1,allPoints.at(j).y);
}
}

fundMat = cvCreateMat(3,3,CV_32F);
int num = 0;
num = cvFindFundamentalMat(points1,points2,fundMat,CV_FM_8POINT,1.0,0.9999,status);

return num;

任何方向将不胜感激。

最佳答案

CvMat* status = cvCreateMat(1,count,CV_32F); 更改为 CvMat* status = cvCreateMat(1,count,CV_8UC1);

关于ios - OpenCV 断言失败 CV_IS_MASK_ARR(mask),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346700/

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