Как избежать странных значений гомографии при нормализации
Люди, знакомые с гомографиями, будут знать, что вы должны нормализовать ее деление на любой из компонентов матрицы, чтобы сохранить однородные координаты. Гомография представляет собой матрицу 3х3 и обычно нормализуется делением на элемент в (3,3).
Проблема возникает, когда это значение очень мало (например, 0,0000008) и делит значение, равное нулю (0,0000007). Результирующее значение составляет почти 0,875, когда оно было принято равным нулю, и результирующая проекция не имеет смысла.
Я хотел бы знать, что является распространенным способом решения этой проблемы. Я использую C++ и арифметику с плавающей точкой.
1 ответ
Итак, если я понимаю вопрос:
0/0.000000001 = 0 = CORRECT
а также:
0.000000001/0.000000001 ~ 1 INCORRECT
Я определю функцию для проверки ошибки с параметром сигма.
Если значение Таким образом, он всегда будет работать со значением, превышающим сигма-ошибку, и 0, если нет.