Détection de texture et propriétés de région sur une image


9

J'ai un problème intéressant que j'essaie de résoudre. Ainsi, par exemple, si nous avons une image en noir et blanc contenant deux textures (A et B), je suis intéressé à connaître les valeurs en pixels des limites qui couvriraient complètement les textures individuelles.

J'ai pensé à utiliser la corrélation croisée, qui me donnerait un groupe de positions, du modèle (légendes) sur l'image, mais y a-t-il un moyen de l'utiliser pour obtenir les valeurs en pixels des limites (celles-ci sont généralement irrégulières)? Existe-t-il également une autre meilleure façon de procéder?

Un exemple réel de cela serait de détecter les régions de précipitations sur une carte montrant trois niveaux de précipitations en un an. Chaque niveau se voit attribuer une texture présente dans la légende, qui est utilisée pour faire correspondre la texture sur la même image.


4
Il serait utile que vous partagiez réellement des exemples et peut-être des solutions préliminaires que vous avez essayées
Ivo Flipse

3
Téléchargez définitivement des exemples d'images afin que nous comprenions ce que vous faites. Comme certaines régions sont remplies de solides et d'autres sont hachurées? nps.gov/sagu/naturescience/images/…
endolith

Si vous avez matlab, vous pouvez utiliser la boîte à outils de traitement d'image. Sinon, leur site Web donne toujours un bon aperçu des algorithmes standard que vous voudrez peut-être utiliser, par exemple la fonction bwconncomp .
M. White

Réponses:


1

Voici un processus simple:

  1. Attribuez des mesures de texture à chaque région de l'image.
  2. Utilisez un algorithme d'étiquetage / connectivité de région (ou algorithme de croissance de région) pour joindre des régions adjacentes ayant la même mesure de texture.
  3. Implémentez un algorithme simple de suivi de bord pour tracer le contour de chaque région.

Les mesures de texture de Law sont une technique plus ancienne mais toujours utile pour déterminer la texture dans une image, et elles peuvent être suffisantes pour distinguer la texture A de la texture B dans toute l'image. Voir la section "Lois sur la texture des mesures énergétiques" dans l'article Wikipedia:

http://en.wikipedia.org/wiki/Image_texture

Dans un premier temps, calculez toutes les mesures de texture et déterminez quelle mesure particulière (par exemple, Edge ou Spot) vous permet de distinguer une texture de l'autre plus facilement. (Si vous postez des photos, je pourrais vous aider à identifier une mesure de texture.)

Si vous n'avez que deux textures, A et B, vous pouvez les traiter comme premier plan et arrière-plan, et un algorithme d'étiquetage de région standard fonctionnera. Pour faciliter la visualisation de ce qui se passe dans le traitement, vous pouvez générer une nouvelle image en affectant des texels A (éléments de texture, petits morceaux de texture) à la couleur blanche et des texels B à la couleur noire. Les algorithmes d'étiquetage de région et / ou de suivi de contour trouveraient alors les régions blanches et noires connectées. La fonction findContours () dans OpenCV fonctionnera bien.

http://en.wikipedia.org/wiki/Connected-component_labeling

Le même article Wikipedia inclut à la fois l'algorithme multipass traditionnel ainsi qu'un algorithme à passage unique. Je n'ai pas implémenté l'algorithme à passage unique décrit ici, mais j'ai travaillé avec l'algorithme à passage unique décrit dans l'article "Un algorithme d'étiquetage des composants utilisant la technique de traçage des contours" par Chen et Chang. L'article de Chen et Chang décrit également un algorithme standard de suivi des contours qui peut être mis en œuvre rapidement.

Si vous avez plus de deux textures, vous pouvez utiliser un algorithme de bassin versant ou de décalage moyen pour regrouper les régions après avoir remappé les textures en couleurs. Bien que ce remappage de la texture à la couleur ne soit pas nécessaire, il facilite le débogage et la compréhension du processus.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.