Как избежать странных значений гомографии при нормализации

Люди, знакомые с гомографиями, будут знать, что вы должны нормализовать ее деление на любой из компонентов матрицы, чтобы сохранить однородные координаты. Гомография представляет собой матрицу 3х3 и обычно нормализуется делением на элемент в (3,3).

http://www.cg.tu-berlin.de/fileadmin/fg144/Courses/06WS/scanning/Dennis/Extrinsic%20calibration-Dateien/image006.jpg

Проблема возникает, когда это значение очень мало (например, 0,0000008) и делит значение, равное нулю (0,0000007). Результирующее значение составляет почти 0,875, когда оно было принято равным нулю, и результирующая проекция не имеет смысла.

Я хотел бы знать, что является распространенным способом решения этой проблемы. Я использую C++ и арифметику с плавающей точкой.

1 ответ

Решение

Итак, если я понимаю вопрос:

0/0.000000001 = 0   = CORRECT

а также:

0.000000001/0.000000001 ~ 1    INCORRECT

Я определю функцию для проверки ошибки с параметром сигма.

Если значение

Таким образом, он всегда будет работать со значением, превышающим сигма-ошибку, и 0, если нет.

Другие вопросы по тегам