Я успешно применил метод cv:: approxPolyDP на контурах (cv:: findContours), чтобы представить контур с более простым полигоном и неявно сделать некоторые шумоподавления.
Я хотел бы сделать то же самое на карте края, полученной с камеры RGBD (что в целом очень шумно), но с небольшим успехом до сих пор, и я не могу найти сравнительные примеры в Интернете. Причина, в которой я нуждаюсь в этом, заключается в том, что с помощью карты ребер можно также использовать ребра между пальцами, ребрами, создаваемыми окклюзией пальца, или ребрами, созданными на ладони.
Этот метод применим к общим картам ребер, кроме контуров?
Может ли кто-нибудь указать мне пример?
Некоторые прикрепленные изображения:
Успешный пример для контуров:
Проблемный случай для краевых отображений:
Скорее всего, я рисую вещи не так, но рисование только пикселей, возвращаемых методом, показывает, что, вероятно, большие области не представлены в конечном результате (и это не сильно меняется в соответствии с параметром epsilon).
Прилагаю также изображение глубины, аналогичное тому, которое я использую в экспериментальном конвейере, описанном выше. Это изображение глубины не было получено камерой глубины, но было синтетически создано путем считывания буфера глубины gpu с использованием OpenGL.
Просто для справки, это также краевая карта изображения глубины, полученная прямо из камеры глубины (с использованием необработанного изображения, без сглаживания и т.д.)
(рука отображается в виде камеры глубины, ладонь вверх, пальцы "закрываются" к ладони)