2013-04-10 4 views
-3

Je travaille dans le système de reconnaissance de la veine dorsale de la main. J'ai déjà obtenu une version amincie des veines et maintenant je dois procéder pour le feature extraction comme indiqué ci-dessous.extraction de traits veineux utilisant pixel par pixel dans matlab

http://imageshack.us/a/img194/5490/0059hv1.png

http://imageshack.us/a/img543/9764/zsthin0059hv1.png

Comme on le voit à partir de la photo ci-dessus, le premier est l'image originale. La normalisation d'image suivie d'une équalistion d'histogramme, d'un seuillage adaptatif, d'un filtre de Wiener et d'un algorithme d'amincissement donnent la seconde image. À partir de là, j'ai besoin de traiter l'image pour l'extraction de caractéristiques à utiliser pour l'appariement. Je serai reconnaissant si quelqu'un peut me fournir le code pour faire défiler tous les pixels dans le modèle de veine amincie (image 2) en utilisant matlab et stocker chaque valeur de pixel dans un fichier bloc-notes qui sera utilisé à des fins de correspondance.

Merci

+0

Je ne peux rien déduire à propos du problème que vous rencontrez, ce que vous avez essayé, quelle est la sortie désirée, etc. Vous devez télécharger votre image quelque part, puis nous dire brièvement ce que vous avez fait pour obtenir cette image? Alors dites-nous ce que vous voulez (peut-être en faisant une autre image) ou en mots. Ensuite, nous pouvons vous donner des suggestions. Par exemple, je ne sais pas pourquoi vous avez utilisé la fonction 'find' –

+0

OK. Existe-t-il un site Web spécifique pour télécharger des images ou son amende si elle est téléchargée ici? – user2265058

+0

Vous pouvez poster votre image sur imageshack [dot] us –

Répondre

0

un coup d'oeil à bwboundaries. Cela peut vous donner exactement ce que vous voulez.

utiliser comme:

B = bwboundaries(BW); 

B contiendra 5 cellules (selon mon estimation après avoir un regard sur l'image). Chaque cellule contiendra nx2 vecteur qui contient x et y coordonnées de la courbe. Après avoir obtenu les coordonnées, vous pouvez obtenir les valeurs de pixels de l'emplacement d'origine comme suit. Supposons que [row,col] contient les coordonnées x et y d'une courbe, vous pouvez obtenir les valeurs de pixel en utilisant sub2ind. Ensuite, utilisez textwrite pour écrire les valeurs dans le fichier bloc-notes.

Je vais vous laisser des choses à comprendre.

+0

mais bwboundaries tracera deux fois les pixels de la veine. – user2265058

+0

donc utilisez une fonction unique pour les filtrer. En fait, utilisez [this] (http://www.mathworks.com/matlabcentral/fileexchange/15242-myunique). Puisque la fonction unique de MATLAB trie les éléments que vous ne voulez pas. –

+0

Bonjour, J'ai déjà obtenu les coordonnées (x, y) des veines selon vos instructions. Cependant, lorsque j'applique sub2ind pour obtenir les valeurs de pixels, je l'obtiens seulement en termes de 1 et 0. Je présume que c'est parce que la seconde image est sous forme binaire. Alors, comment puis-je procéder pour obtenir la bonne valeur de pixel. Je vous remercie. – user2265058

Questions connexes