У меня есть общий вопрос о том, какой метод использовать для сглаживания 3D (xyz) сетки.
В моей программе есть большие матрицы 3D точек, полученные методом стереозрения. Форма результата всегда что-то вроде полусферы, но она имеет морщинистость из-за ошибок стереозрения, которые я хочу устранить.
Вопрос в том, как это сделать? Прямо сейчас я наполовину разработал метод для чего-то, но я думаю, что может быть лучший метод.
Моя настоящая идея состоит в том, чтобы использовать метод Эрмита. Идея состоит в том, чтобы:
Берем все XY и сглаживаем в двух направлениях ->XYnew и XnewY
Преобразуйте линии Эрмита в линии Безье и найдите точку пересечения между XYnew и XnewY, имея новую точку. (Повторить со всеми точками, обычно 2000)
Используйте сглаживание Hermite XYZ с XYZnew.
Прямо сейчас у меня есть сглаживание поверхности Эрмита и сглаживание линий Эрмита, реализованное на C++, но средняя часть не так проста, как предполагалось.
В любом случае, у меня вопрос, это правильный метод или есть другой, который может быть лучше?
Конечно, идея состоит в том, чтобы устранить ошибку, вызванную методом стереозрения, это не проблема компьютерной графики, а проблема обработки данных.
Приложение:
Сначала я подумал, что сглаживания по оси Z будет достаточно, но оказалось, что это не так, также есть много ошибок XY. На изображениях ниже вы можете увидеть, как работает Z-образный фитинг, но он все же очень неровный, как это видно на изображении 2. (Цвета искажены и должны быть достаточно непрерывными)