Détection de crête dans un tableau 2D

Je suis à aider la clinique vétérinaire de mesure de la pression en vertu de l'un des chiens de la patte. J'utilise Python pour mon analyse de données et maintenant je suis coincé en essayant de diviser les pattes dans les (anatomique) sous-régions.

J'ai fait un tableau 2D de chaque patte, qui se compose d'un maximum de valeurs pour chaque capteur qui a été chargé par la patte au fil du temps. Voici un exemple d'une patte, où j'ai utilisé Excel pour tracer les domaines que je veux "détecter". Ce sont 2 par 2 cases autour du capteur avec des maxima locaux de l', qui, ensemble, ont la plus grande somme.

Détection de crête dans un tableau 2D

J'ai donc essayé quelques tests et tout simplement décider de chercher le maximum de chaque colonne et de la ligne (ne peut pas regarder dans une seule direction à cause de la forme de la patte). Cela semble détecter l'emplacement de la séparer les orteils assez bien, mais il marque également les voisins de capteurs.

Détection de crête dans un tableau 2D

Alors quelle serait la meilleure façon de dire à Python qui de ces maximums sont ceux que je veux?

Remarque: La 2x2 places peuvent se chevauchent pas, car ils doivent être séparés les orteils!

Aussi j'ai pris 2x2 comme une commodité, pas plus avancé solution est la bienvenue, mais je suis simplement un homme mouvement scientifique, donc je ne suis ni un vrai programmeur ou un mathématicien, de sorte s'il vous plaît garder "simple".

Voici un version qui peut être chargé avec np.loadtxt


Résultats

J'ai donc essayé @jextee de la solution (voir les résultats ci-dessous). Comme vous pouvez le voir, il fonctionne très sur les pattes de devant, mais ça marche moins bien pour les pattes de derrière.

Plus précisément, il ne peut pas reconnaître le petit pic qui est le quatrième orteil. C'est évidemment inhérente au fait que la boucle regarde de haut en bas vers la valeur la plus basse, sans prendre en compte, lorsque cela est.

Serait ce que quelqu'un sait comment modifier @jextee de l'algorithme, de sorte qu'il pourrait être en mesure de trouver le 4ème orteil trop?

Détection de crête dans un tableau 2D

Puisque je n'ai pas traité d'autres essais encore, je ne peux pas fournir tous les autres échantillons. Mais les données que j'ai donné avant étaient les moyennes de chaque patte. Ce fichier est un tableau avec le maximum de données de 9 pattes dans l'ordre qu'ils entrent en contact avec la plaque.

Cette image montre comment ils sont spatialement répartis sur la plaque.

Détection de crête dans un tableau 2D

Mise à jour:

J'ai mis en place un blog pour toute personne intéressée et J'ai mis un SkyDrive avec toutes les mesures brutes. Donc de toute personne qui demande plus de données: plus de puissance pour vous!


Nouvelle mise à jour:

Ainsi, après l'aide que j'ai eu avec mes questions sur les patte de détection et patte de tri, j'ai finalement été en mesure de vérifier l'orteil de détection pour chaque patte! S'avère, elle ne fonctionne pas si bien dans quoi que ce soit mais les pattes de taille moyenne comme celle de mon propre exemple. Bien sûr, avec le recul, c'est de ma faute pour le choix de la 2x2 de façon arbitraire.

Voici un bel exemple de l'endroit où ça se passe mal: un clou qui est reconnue comme étant un orteil et le talon d'' est tellement large, il est reconnu deux fois!

Détection de crête dans un tableau 2D

La patte est trop grand, afin de prendre une taille 2x2 ne se chevauchent pas, les causes de certains pieds pour être détecté deux fois. À l'inverse, dans les petits chiens, il ne parvient pas à trouver un 5ème orteil, ce qui je pense est causé par la 2x2 zone trop grande.

Après essayez la solution actuelle sur toutes mes mesures je suis venu à la stupéfiante conclusion que, pour presque tous mes petits chiens, il n'a pas trouver un 5ème orteil et que dans plus de 50% de l'impact pour les chiens de grande taille, il trouverait plus!

Donc clairement, j'ai besoin de la changer. Ma part, je crois, était le changement de la taille de la neighborhood à quelque chose de plus petit pour les petits chiens et les grands pour les grands chiens. Mais generate_binary_structure ne me laisse pas changer la taille de la matrice.

Donc, je suis en espérant que quelqu'un d'autre a une meilleure suggestion pour localiser les orteils, peut-être d'avoir la zone des orteils à l'échelle avec la patte de la taille?

  • - Je considérer que les virgules décimales plutôt que de la valeur des séparateurs?
  • Oui, ils sont des virgules. Et @Christian, je suis en train de le coller dans un simple fichier texte lisible, mais même cela échoue sur moi 🙁
  • Si quelqu'un a besoin de plus d'informations, j'ai ouvert un salon de discussion pour elle
  • Je remarque juste que le bas de l'image en miroir, par rapport à l'exemple d'Excel. Stupide orientation!
  • Quel est le but de cette analyse? Vous dites que vous voulez identifier anatomiques sous-régions. Est-il pour ramasser charge anormale distibution? Le positionnement relatif des plaquettes?
  • Comme je suis en train de faire une étude de faisabilité, quelque chose se passe vraiment. Donc, je suis à la recherche aussi de nombreuses façons de définir la pression, y compris les sous-régions. J'ai aussi besoin de pouvoir discriminer entre les "gros orteil" et le " petit orteil côté, l'estimation de l'orientation. Mais depuis, il n'a pas été fait avant, il n'y a pas de raconter ce que l'on pourrait trouver 🙂
  • Les photos sont tout simplement imshow()'s d'un tableau (à l'exception de la première, qui est à partir d'Excel). @Ron: pour l'instant, je n'ai pas traité d'autres mesures, mais cette mesure a en fait 9 plein de contacts. Je vais les télécharger dans un sec
  • l'un des objectifs de cette étude est de voir de quelle taille/poids de chiens le système est adapté, donc oui, alors que ce chien a été d'environ 20 kg. J'ai certains qui sont considérablement plus petits (et les grands) et espérer que je ne serai pas en mesure de faire de même pour les vrais petits.
  • Partielle en double: stackoverflow.com/questions/1713335/...
  • Cool question. Pourquoi les données liées à un 3-D np tableau au lieu de 2-D?
  • les pieds sont mesurés au fil du temps, donc de la 3ème dimension. Cependant, ils ne bougent pas de leur place (relativement parlant), donc je suis surtout intéressé où les orteils sont situés en 2D. L'aspect 3D est gratuit après que
  • Pour moi, il n'est pas clair si le Nouvelle mise à jour est déjà abordés dans les réponses ci-dessous?!