калибровка камеры opencv

Привет, я делаю проект, чтобы сделать реконструкцию изображения 3d. Я на этапе калибровки камеры, который занимает много времени. Но когда я компилирую код и отображаю шахматную доску перед камерой, она сразу переходит к ошибке исключения без обработки.

Когда картинка не в кадре, нет ошибки, как только она попадает в кадр, возникает необработанная ошибка, я нене знаю почему.

Я спросил много людей, ни один орган не может помочь.

вот мой код

#include 
#include 
#include 
#include 
#include 

using namespace cv;
using namespace std;

int main()
{
    int numBoards = 0;
    int numCornersHor;
    int numCornersVer;

    printf("Enter number of corners along width: ");
    scanf("%d", &numCornersHor);

    printf("Enter number of corners along height: ");
    scanf("%d", &numCornersVer);

    printf("Enter number of boards: ");
    scanf("%d", &numBoards);

    int numSquares = numCornersHor * numCornersVer;
    Size board_sz = Size(numCornersHor, numCornersVer);
    VideoCapture capture = VideoCapture(0);

    vector object_points;
    vector image_points;

    vector corners;
    int successes=0;

    Mat image;
    Mat gray_image;
    capture >> image;

    vector obj;
    for(int j=0;j image;

        int key = waitKey(1);

        if(key==27)
            return 0;

        if(key==' ' && found!=0)
        {
            image_points.push_back(corners);
            object_points.push_back(obj);
            printf("Snap stored!\n");

            successes++;

            if(successes>=numBoards)
                break;
        }
    }

    Mat intrinsic = Mat(3, 3, CV_32FC1);
    Mat distCoeffs;
    vector rvecs;
    vector tvecs;

    intrinsic.ptr(0)[0] = 1;
    intrinsic.ptr(1)[1] = 1;

    calibrateCamera(object_points, image_points, image.size(), intrinsic, distCoeffs, rvecs, tvecs);

    Mat imageUndistorted;
    while(1)
    {
        capture >> image;
        undistort(image, imageUndistorted, intrinsic, distCoeffs);

        imshow("win1", image);
        imshow("win2", imageUndistorted);

        waitKey(1);
    }

    capture.release();

    return 0;
}

ошибка, которую я получаю на консоли

ОШИБКА OpenCV: утверждение не выполнено (ncorners>= 0 && corners.depth () == CV_32F) в файле неизвестных функций, файл ..... \ src \ opencv \ modules \ imgproc \ src \ cornersubpix.cpp, строка 257.

и сообщение об ошибке говорит

Необработанное исключение в 0x769afc16 в basiccalibration.exe: Microsoft C ++ исключение: cv :: Исключение в ячейке памяти 0x0021f51c ..

Помощь будет оценена. Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос