В настоящее время я потерян в документации OpenCV и ищу некоторые рекомендации относительно возможного упорядочения функций или, возможно, функции в OpenCV, которую я еще не встретил ...Использование коэффициентов искажения с findHomography в OpenCV
Я слежу за лазером в канале камеры в месте на проекционном экране. До сих пор я использовал findHomography, а затем projectTransform, чтобы выполнить это, однако камера, которую я использовал, имела очень мало искажений. Теперь я использую другую камеру с заметным радиальным искажением. Я использовал cvCalibrateCamera для получения коэффициентов искажения, матрицы камеры и т. Д., Но я не уверен, как я должен использовать эти данные в моем текущем процессе, или, возможно, мне нужно использовать разные функции и/или порядок функций из OpenCV в целом. Любые предложения будут оценены ...
Моего текущим кода, который хорошо работает (без искажений) выглядят следующим образом:
Mat homog;
homog = findHomography(Mat(vCameraPoints), Mat(vTargetPoints), CV_RANSAC);
vector<Point2f> cvTrackPoint;
cvTrackPoint.push_back(Point2f(pMapPoint.fX, pMapPoint.fY));
Mat normalizedImageMat;
perspectiveTransform(Mat(cvTrackPoint), normalizedImageMat, homog);
Point2f normalizedImgPt;
normalizedImgPt = Point2f(normalizedImageMat.at<Point2f>(0,0));
normalizedImgPt.x /= szCameraSize.fWidth;
normalizedImgPt.y /= szCameraSize.fHeight;
Я тогда, конечно, умножить normalizedImgPt моего разрешения экрана проекционного
Так снова, просто для того, чтобы уточнить ... У меня есть то, что, как представляется, являются хорошими данными из calibrateCamera, как бы я использовал эту информацию, чтобы повлиять на искажение объектива? Возможно, вышеупомянутый процесс не будет работать, любая помощь?
Спасибо, заранее
Спасибо за ответ .. Я понимаю, что вы говорите, но на самом деле неискаженное изображение не поможет мне, потому что питание камеры не отображается во время нормальной работы. Я действительно надеялся на такую функцию, как projectPoints или undistortPoints. Я буду знать x/y в канале/ROI и просто нужно применить значения иска к знанию x/y, чтобы оно было правильным и т. Д. Однако упомянутые выше функции выходят из пространства объекта в пространство изображения камеры. Кроме того, как найтиHomography вписывается или делает это, если вышеуказанные функции действительно работали? – KingCapybara
Ну, я думаю, я не уверен, чего вы пытаетесь достичь, не могли бы вы объяснить это более подробно? Потому что есть функция 'undistortPoints', которая также, похоже, выполняет то, что я думаю, что вы хотите. В дополнение, я не понимаю, почему отображается питание камеры во время нормальной работы. – Olotiar