-
2 pièce(s) jointe(s)
Distance Map OpenCv2 Mat
Bonjour,
Je suis débutant en OpenCv2 (c++) et je veux créer une distance map ( avec la méthode Chamfer décrite par Gunilla Borgefors ) a partir d'une image de segmentation.
En entree j'ai une image de ce type, Pièce jointe 180749.
Et j'ai ceci en sortie Pièce jointe 180753.
Vous remarquerez que la distance map ne remplit pas l'image entièrement, et que beaucoup de pixels sont placés a 255. Mon premier reflex fut alors d’implémenter une normalisation afin d'avoir un rendu plus propre. Cependant l'objet cv::Mat ne peut contenir des entiers plus grand que 255 (unsigned char). La normalisation n'a aucun effet puisque le data ne peut dépasser 255.
Une idée ?
Merci pour votre aide,
Cordialement, Psykomusic
-
distanceTransform
Il te faut sortir des carte en CV_32F et non en CV_8U. C'est parce que tu est en 8bit que tu ne peux aller plus loin que 255. Par contre je n'ai vu nul part comment sortir les carte en 32 bit (float).
Attention : Pour afficher des image en float dans imshow, il faut les normaliser entre 0.0f et 1.0f
Regarde ce tuto