Мне нужно вычислить координаты X, Y в мире по отношению к камере, используя координаты u, v на 2D-изображении. Я использую краевую камеру S7 для отправки видеопотока 720x480 в MATLAB.
Что я знаю: Z, т.е. глубина объекта от камеры, размер пикселей камеры (1,4 мкм), фокусное расстояние ( 4,2 мм)
Допустим, точка изображения находится в точке (u, v) = (400,400).
Мой подход следующий:
- Вычесть пиксель значение центральной точки (240,360) из пиксельных координат u, v точки на изображении. Это должно дать нам координаты пикселей относительно оптической оси камеры (оси z). Исходная точка теперь находится в центре изображения. Итак, новые координаты: (160, -40)
- Умножьте новые значения пикселей u, v на размер пикселя, чтобы получить расстояние от точки до начала координат в физических единицах. Назовем это (x, y). Мы получаем (x, y) = (0,224, -0,056) в миллиметрах.
- Используйте формулу X = xZ / f & Y = yZ / f для вычисления координат X, Y в реальном мире с учетом к оптической оси камеры.
Правильно ли мой подход?