Я инженер-робототехник и не являюсь экспертом в области компьютерного зрения или визуального обслуживания. Это один из моих лучших опытов с камерами.
В любом случае, я хотел бы получить информацию о направлении, связанном с определенным пикселем на изображении.
Установка следующая. У меня есть камера с разрешением 1040×776, которую я откалибровал. В моем изображении есть какой-то объект, который я могу обнаружить и связать с точкой на изображении. Пиксели выражены в и, v (Я думаю), так что эти точки идут между 0 и 1040 на U ось (горизонтальная) и между 0 и 776 в v ось.
Давайте предположим, что u, v = 0,0 находится в центре изображения (даже если оно находится в верхнем левом углу. Но это не проблема).
Мне нужен единичный вектор, который идет от центра камеры к вышеупомянутому пикселю. Так, например, если пиксель находится в центре изображения, результирующий вектор должен быть (1,0,0).
Я думаю, что уже нашел ответ на stackexchange, но я не уверен на 100%, что мне нужно:
OpenCV: вычислить угол между камерой и пикселем
Рецепт:
1 — Откалибруйте камеру, получив матрицу камеры K и параметры искажения D. В OpenCV это делается, как описано в этом руководстве.
2 — Удалите нелинейные искажения из интересующего положения пикселя. В OpenCV это делается с помощью подпрограммы undistortPoints без передачи аргументов R и P.
3 — Обратный проецирование представляющих интерес пикселей на лучи (единичные векторы с хвостом в центре камеры) в 3D-координатах камеры путем умножения их положений в пикселях на однородные координаты, умноженные на значение, обратное матрице камеры.
Как вы думаете?
Заранее спасибо за внимание.
Задача ещё не решена.
Других решений пока нет …