OpenCV - approxPolyDP de bord des cartes (pas de contours)

J'ai appliqué avec succès la méthode de cv::approxPolyDP sur les contours (cv::findContours), dans le but de représenter un contour à l'aide d'un simple polygone et implicitement certains de débruitage.

Je voudrais faire la même chose sur un bord de la carte acquis à partir d'une RGBD de la caméra (qui est en général très bruyant), mais avec pas beaucoup de succès jusqu'à maintenant et je ne trouve pas relative des exemples en ligne. La raison que j'ai besoin de ceci, est que par le biais d'un bord de la carte, on peut aussi utiliser les bords entre les doigts, sur les bords créé par occlusion du doigt ou de bords dans la paume de la main.

Cette méthode est-elle applicable à l'avantage concurrentiel général des cartes, autres que les contours?

Quelqu'un pourrait m'identifier à un exemple?

Quelques images en pièce jointe:

Exemple de réussite pour les contours:
OpenCV - approxPolyDP de bord des cartes (pas de contours)

Cas problématique de bord des cartes:

Plus probablement je dessine des choses dans le mauvais sens, mais de tracer les pixels retourné par la méthode montre que, probablement, de grandes zones ne sont pas représentés dans le résultat final (et ce n'est pas beaucoup de changement en fonction de l'epsilon-paramètre).

OpenCV - approxPolyDP de bord des cartes (pas de contours)

J'attache aussi une image de profondeur, semblables à celles que j'utilise dans le expérimentales pipeline décrite ci-dessus. Cette image de profondeur n'a pas été acquise par la profondeur de la caméra, mais a été synthétiquement générés par la lecture de la profondeur de la mémoire tampon de la carte graphique, en utilisant OpenGL.

OpenCV - approxPolyDP de bord des cartes (pas de contours)

Juste pour la référence, c'est à la limite de la carte de la profondeur de l'image acquise directement à partir de la profondeur de l'appareil (à l'aide de l'image brute, sans lissage, etc appliquée)

OpenCV - approxPolyDP de bord des cartes (pas de contours)

(à la main comme viewd à partir d'une profondeur de caméra, paume tournée vers le haut, les doigts "clôture" en direction de la palmeraie)

Mon soupçon est qu'il y a des lacunes dans le bord de la carte par cv::findContours. Pourriez-vous poster une des images originales de la RGBD de la caméra? (Peut-être la profondeur de l'image). Si le débruitage est nécessaire, elle doit être appliquée avant de contour/edge trouver.
Salut rwong, dans ce cas, je n'utilise pas de cv::findContours, j'applique Savant Détection de Bord sur le bord de l'image. Pour le moment je n'ai pas denoise le bord de l'image à l'avance, comme je l'ai d'abord voulu voir la qualité des données réelles acquises, mais vous avez raison, on devrait également réduire le bruit un peu avant la limite de détection. Je remarque cependant que, dans une première étape, j'utilise de façon synthétique les données générées (tampon de profondeur de OpenGL), donc pas de débruitage est nécessaire dans les exemples que j'ai posté. Je vais modifier la question pour ajouter le synthétique de la profondeur de l'image.
Pour les Futés de Détection de contours, en abaissant le seuil le plus bas (tout en gardant le seuil plus élevé même) se traduira par plus de pixels du contour étant marqué, et donc de réduire le risque de lacunes en bord de chaînes. Je n'ai pas utilisé approxPolyDP avant, donc je ne pouvais pas faire de commentaires. La leçon est que si il y a une imperfection en une seule étape, il est généralement difficile de fixer dans les étapes suivantes.
C'est vrai, mais les images montrent que le savant détection de bord est suffisant, en fournissant un sens au bord de la carte (en plus, en abaissant le seuil donne plus intérieure-bords, aucune influence significative sur les bords). Donc, il n'y a pas d'artefact, à ce stade, je suppose, c'est soit que j'utilise approxPpolyDP dans un mauvais sens, ou il ne peut pas gérer les non-fermé-cartes de contours (qui je pense n'est pas le cas, en se fondant également sur les paramètres d'entrée de la méthode).

OriginalL'auteur dim_tz | 2014-03-02