Я хочу удалить шум на кривой. То, что у меня есть как набор точек (std::vector<Point>
). Это представляет собой кривую, но это шумно. Поэтому я хочу удалить шум и получить плавную кривую.
Я пробовал несколько вариантов, таких как полиномиальная кривая и cv::approxPolyDP
. Но они не дают того, чего я хочу.
Теперь я хочу сгладить его, используя фильтрацию. Но в opencv функции предназначены для изображений (2D-сигналов). Итак, как я могу это сделать для 1D-сигнала?
Похоже, что вы хотите, как сглаживающий сплайн.
Сглаживающий сплайн представляет собой метод сглаживания (подгонка гладкой кривой к множеству шумовых наблюдений) с использованием сплайновой функции.
К сожалению, я не думаю, что это уже реализовано в OpenCV. Тем не менее, немного быстрого Googling оказалось, что Научная библиотека GNU включает поддержку базовых сглаживающих сплайнов, которые, похоже, будут делать то, что вы хотите.