Задача ставится следующим образом.
Объект, который нужно оцифровать, стоит на подставке, которая вращается.
Есть камера, которая фотографирует объект. Характерные размеры объекта ~5 см, радиус поворота ~ 6 см.
Есть две фотографии, уже приведённые друг к другу, чтобы можно было стерео-картинку - disparity map - посчитать. Более того, disparity map получается нормальная.
Ссылка на OpenCV :
docs.opencv.org/modules/calib3d/doc/camera_calibra...
После калибровки CameraMatrix (матрица A) имеет коэффициенты fx, fy порядка ~1000
Примерно так я делаю восстановление объекта:
org.opencv.calib3d.Calib3d.stereoRectify(mCameraMatrix, mDistortionCoefficients,
mCameraMatrix, mDistortionCoefficients, dispFloat.size(), R, T, R1, R2, P1, P2, Q);
org.opencv.calib3d.Calib3d.reprojectImageTo3D(dispFloat,xyz,Q);
Но если я использую следующие функции для ректификации, то получу удалённость точек объекта от экрана порядка 1000-10000 единиц. Виртуальный объект даже в чём-то похож на реальный, но его размер оставляет желать лучшего. Как эти единицы масштабировать в нормальные сантиметры? Где этот масштаб может храниться?