калибровка камеры 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 ..
Помощь будет оценена. Спасибо