Как отобразить тепловое изображение (Flir A325sc) с помощью ИК-изображения Asus XTion Pro Live под OpenCV+ROS
Я хочу сопоставить тепловое изображение Flir с глубиной изображения XTion. Поскольку изображение глубины рассчитывается с помощью ИК-камеры Xtions, я хочу сопоставить Flir с ИК-изображением Xtions.
Для этого я поместил обе камеры на одной плоскости близко друг к другу (около 7 см по x, 1 см по y и 3 см по z).
Затем я использовал ROS Indigo и openCV 2.4.9, чтобы:
- Установите исправление Flir Focus (без автофокуса)
- Получите оба изображения синхронизированы.
- Измените размер ИК-изображения Xtion с 640x480 до 320x240 пикселей в качестве изображения Flir.
- Рассчитать внутренние параметры камеры для обеих камер. (Flir + Xtion IR)
- Рассчитать внешние параметры
- Перекартируйте оба изображения, чтобы получить исправленные изображения
Теперь у меня есть два исправленных изображения, но все еще смещение по X (горизонтальное направление).
Если я правильно понимаю, у меня есть смещение из-за разных фокусных расстояний и поля зрения (Flir с объективом: 45° H x 33,8° V и фокусным расстоянием 9,66 мм, XTion: 58° H x 45° V) и мог решить проблему с перспективным преобразованием, но у меня нет обоих фокусных расстояний в мм.
Таблицы:
- http://support.flir.com/DsDownload/Assets/48001-0101_en_40.pdf
- https://www.imc-store.com.au/v/vspfiles/assets/images/1196960_en_51.pdf
- http://www.asus.com/us/Multimedia/Xtion_PRO_LIVE/specifications/
У меня была идея, чтобы получить фокусное расстояние с cv::calibrationMatrixValues
но я не знаю диафрагму с и Heigth.
Как я мог решить эту проблему?