首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV fisheye::projectpoints断言失败

OpenCV fisheye::projectpoints断言失败
EN

Stack Overflow用户
提问于 2020-03-16 02:41:39
回答 1查看 104关注 0票数 0

我想在使用opencv 4.0.1 c++的图像上投影一个点(-1450,-1660)我有相机矩阵和失真系数,我的代码是

代码语言:javascript
运行
复制
    vector <Point3f> inputpoints;
    Point3f myPoint;
    myPoint.x = -1450;
    myPoint.y = -1660;
    myPoint.z = 0;
    inputpoints.push_back(myPoint);

    vector<Point2f> outputpoints;

    vector<Point3f> tvec;
    tvec.push_back(Point3f(0, 0, 0));

    vector<Point3f> rvec;
    rvec.push_back(Point3f(0, 0, 0));

    double mydata[9] = { 3.3202343554882879e+02, 1., 6.4337059696010670e+02, 0, 3.3196938477610536e+02, 5.3844814394773562e+02, 0., 0., 1. };

    Mat mycameraMatrix = Mat(3, 3, CV_64F, mydata);

    double mydata2[4] = { -1.1129472191078109e-03, 4.9443845791693870e-02,
        -7.2244333582166609e-03, -1.7309984187889034e-03 };

    Mat mydiscoff = Mat{ 4,1, CV_64F ,mydata2 };
    Mat newCamMat1= Mat(3, 3, CV_64F);

   cv::fisheye::projectPoints(inputpoints, rvec, tvec, mycameraMatrix, mydiscoff, outputpoints);

当我运行这个程序时,我得到了这个异常

代码语言:javascript
运行
复制
OpenCV(4.0.1) Error: Assertion failed (mtype == type0 || (CV_MAT_CN(mtype) == CV_MAT_CN(type0) && ((1 << type0) & fixedDepthMask) != 0)) in cv::debug_build_guard::_OutputArray::create, file c:\build\master_winpack-build-win64-vc15\opencv\modules\core\src\matrix_wrap.cpp, line 1395

我更改了相机矩阵的类型和失真系数为CV_32f,但我仍然得到相同的错误,我是openCV ..so的新手,谁能告诉我是什么导致了这个异常?我知道rvec应该是3*3,但我只是跟随了其他人的代码,他们写的代码可以这样写。

EN

回答 1

Stack Overflow用户

发布于 2020-03-16 05:28:51

好的,问题是projectpoint和fisheye::projectpoint的参数顺序不同,我把属于..so的顺序放在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60696387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档