opencCV Расчет коэффициентов искажения (некалиброванный) в Undistort

Я новичок в openCV, используя версию 2.4.9

Я пытаюсь сгенерировать трехмерную проекцию точек из последовательности изображений, не зная параметров камеры, и камера не использовалась со мной для калибровки. Используемая камера имела объектив «рыбий глаз».

Я использовал goodFeaturesToTrack () для обнаружения характерных точек с последующей реализацией LK в openCV для отслеживания характерных точек в последовательности изображений. Используя эти точки, я успешно смог оценить Фундаментальную Матрицу из findFundamentalMat () и реализовал функцию стереоRectifyUncalibrated () для генерации матриц ректификационных гомографий H1 и H2. Затем я вычислил матрицу вращения R из H как
R = cameraMatrix ^ {- 1} * H * cameraMatrix

Теперь мне нужно неискажать свои изображения после исправления. Либо с помощью initUndistortRectifyMap () и remap (), либо напрямую с помощью undistort (), но обе функции также требуют «коэффициентов искажения» для вычисления исправленного изображения.
Я пытался найти различные методы для оценки этих параметров, ни документация модели камеры не была предоставлена ​​компанией, ни я не мог найти какой-либо другой метод, кроме калибровки камеры с использованием шахматных досок или круговой сетки.

Как мне это сделать??
Я делаю это правильно?
Есть ли другой лучший метод?
Может ли кто-нибудь любезно помочь?
Заранее спасибо.

//Код

        //Fundamental Matrix
Mat fundamental_matrix = findFundamentalMat(points[0], points[1], FM_RANSAC, 3, 0.99);
cout<<"F:\n" <<fundamental_matrix<<endl;
//Rectification Homographies
Mat H1, H2,F;
F = fundamental_matrix;
stereoRectifyUncalibrated(points[0],points[1], F, image.size(), H1, H2, 3);
cout<<"H1:\n" <<H1<<endl;
cout<<"H2:\n" <<H2<<endl;
//calculating Rotation matrix from homographic maps
Mat fInv= fundamental_matrix.inv();
R = (fInv)*H1*fundamental_matrix;// Mat distCoeffs = Mat::zeros(8, 1, CV_64F);
initUndistortRectifyMap(fundamental_matrix, distCoeffs, R, fundamental_matrix, image.size() ,CV_32FC1,  map1,  map2);

// Как вычислять distCoeffs без камеры и без ведома. Спасибо

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector