@Yurevich1

Как правильно масштабировать реконструированный объект в виртуальном 3d пространстве, используя OpenCV?

Задача ставится следующим образом.
Объект, который нужно оцифровать, стоит на подставке, которая вращается.
Есть камера, которая фотографирует объект. Характерные размеры объекта ~5 см, радиус поворота ~ 6 см.
Есть две фотографии, уже приведённые друг к другу, чтобы можно было стерео-картинку - disparity map - посчитать. Более того, disparity map получается нормальная.
Ссылка на OpenCV : docs.opencv.org/modules/calib3d/doc/camera_calibra...
После калибровки CameraMatrix (матрица A) имеет коэффициенты fx, fy порядка ~1000
b33af4546dae46139e7612c57b88fbae.pngf13719c465f34c33a4882bcdbfea9d99.png

Примерно так я делаю восстановление объекта:
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 единиц. Виртуальный объект даже в чём-то похож на реальный, но его размер оставляет желать лучшего. Как эти единицы масштабировать в нормальные сантиметры? Где этот масштаб может храниться?
  • Вопрос задан
  • 2855 просмотров
Пригласить эксперта
Ответы на вопрос 2
@xandox
После калибровки CameraMatrix (матрица A) имеет коэффициенты fx, fy порядка ~1000

Это и есть масштаб. К чему он приводит зависит от того в чем ты передавал XYZ
Ответ написан
Комментировать
@Yurevich1 Автор вопроса
fx, fy порядка ~1000 - это пискели в чём? в метрах? километрах? миллиметрах? дюймах?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы