Algorithme Grassfire en C ++

Tout le monde a une idée de la façon de réaliser grassfire en c ++?

J’utilise la bibliothèque OpenCV

Quelle est la différence avec la transformation de distance? Il existe une fonction appelée cv :: distanceTransform , qui peut peut-être vous aider.

Qu’en est-il du pseudocode dans ce lien.

Ça va comme ça:

for each row in image left to right for each column in image top to bottom if(pixel is in region){ set pixel to 1 + minimum value of the north east neighbours }else{ set pixel to zero } } } for each row right to left for each column bottom to top if(pixel is in region){ set pixel to min(value of the pixel,1 + minimum value of the south west neighbours) }else{ set pixel to zero } } } 

C’est donc une version modifiée de grassfire que j’utilise actuellement pour l’extraction de BLOB. Il prend une image numérisée (image modifiée de telle sorte que toutes les valeurs soient un 1 ou un 0) et renvoie un vecteur de frameworks de sélection contenant le plus grand en premier. Le code est plutôt long, mais il se trouve dans un repository public à l’ adresse https://github.com/bstadt/JHU-Robotics-compVis dans le fichier src / cvLib.cpp. Sachez également que la boîte englobante est une classe que j’ai moi-même écrite, vous en aurez donc besoin également. Il a sa source dans le dossier src et un en-tête dans le répertoire include, assurez-vous de saisir les deux.