Je veux pouvoir trouver des points dans les images qui sont au centre d'un dégradé radial comme celui montré dans l'image de gauche ci-dessous. Avez-vous des idées sur la façon d'utiliser une transformation de Hough ou une autre méthode de vision par ordinateur?
Merci
exemple d'image de recherche:
image-processing
computer-vision
gradient
waspinator
la source
la source
Réponses:
Je travaillais en opencv et essayais de trouver le pic d'un gradient généré par la transformation de distance. J'ai réalisé que l'utilisation d'opérations morphologiques (érosion / dilatation) dans des images à échelle de gris était très utile dans ce cas. Si vous érode dilatez une image en niveaux de gris, n'importe quel pixel va prendre la valeur du voisin inférieur / supérieur. Vous pouvez donc trouver des pics d'intensité dans les gradients en soustrayant l'image en niveaux de gris de la même image dilatée / érodée. Voici mon résultat:
Et une façon de le faire dans OpenCV / Cpp:
la source
Voici ce que j'ai jusqu'à présent. La façon dont je remplis mon espace Hough est loin d'être optimale. Je suis sûr que je peux faire de la vectorisation pour l'accélérer. J'utilise Matlab R2011a. Image originale
Les suggestions sont appréciées, merci.
J'ai modifié une fonction de ligne de dessin que j'ai trouvée sur matlab central pour incrémenter d'un pixel d'une valeur au lieu de définir un pixel sur une valeur
la source
Exécutez un histogramme de dégradés orientés sur les patchs de l'image - le pic de chacun de ces histogrammes vous donnera la direction dominante de ce patch (comme les flèches que vous montrez).
Trouvez où toutes ces flèches se croisent - si ce point est à l'intérieur de l'objet, il pourrait être le centre d'un dégradé radial.
la source