J'ai des masques de segmentation avec des couleurs indexées. Malheureusement, il y a du bruit (coloré) sur les bords des objets. Lors de la transition d'une région de couleur à la suivante, il existe de petites régions de pixels de différentes couleurs, séparant les deux régions de couleur (provoquées par la conversion de pixels transparents sur les bords).Comment puis-je supprimer/réattribuer de petites zones de pixels (sur les bords) à partir d'images en couleur? (MATLAB)
Je veux supprimer ce bruit (avec Matlab) en attribuant une couleur d'une des grandes régions voisines. Peu importe, la chose principale est d'enlever les petites zones. On peut supposer que de petites régions de n'importe quelle couleur peuvent être supprimées de cette manière (réaffectation à la grande région voisine). Dans le cas d'une image binaire, je pourrais utiliser bwareaopen
(suggéré dans ce Q & A: Remove small chunks of labels in an image). Convertir l'image en une image binaire pour chaque couleur pourrait être une solution de contournement, mais cela est coûteux (pour beaucoup de couleurs) et laisse la question de réaffectation ouverte. J'espère qu'il y a des façons plus élégantes de le faire.
Comment avez-vous assignez les index en premier lieu? Vous ne devriez pas utiliser l'interpolation ou tout ce qui produira des indices invalides. Peut-être prendre un peu de recul et de fixer l'affectation plutôt que de post-traitement du résultat. – Suever
C'est une excellente idée, et si j'avais fait l'étiquetage moi-même, j'aurais évité la transparence lors de la segmentation des images. Puisque je dois travailler maintenant avec les étiquettes données, ce n'est pas une option cependant:/ – Honeybear
Donc avez-vous des valeurs indexées '[1, 2, 3]' par exemple? – Suever