OpenCV fisheye :: утверждение точек проекта не выполнено - PullRequest
0 голосов
/ 15 марта 2020

Я хочу проецировать одну точку (-1450, -1660) на изображение, которое я использую opencv 4.0.1 c ++ У меня есть матрица камеры и коэффициент искажения, и мой код

    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);

, когда Я запускаю программу, я получаю это исключение

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 .. так может любой скажите, чем вызвано это исключение? Я знаю, что rve c должно быть 3 * 3, но я просто следовал за кем-то еще, кто написал код, который можно написать таким образом

1 Ответ

1 голос
/ 16 марта 2020

хорошо, проблема была в том, что точки проекта и "рыбий глаз" :: точки проекта отличаются порядком параметров .. поэтому я выставлял порядок, который принадлежит точкам проекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...