Bonjour à tous !!
Alors je vous expose le dernier de mes soucis
Donc en fait j'ai une image sur lequel j'aimerai récupérer des valeurs de pixels.
J'ai pensé à utiliser le programme suivant :
[CODE]
pl.imshow(image)
points = ginput()
[CODE]
En gros je clique sur mon image pour selectionner mes points cest plus rapide que d'écrire une à une toute les coordonnées de mes points surtout si il y en as beaucoup!
Du coup après j'ai une liste d'un nombre n de points de la forme
En gros j'aimerai pouvoir récupérer les valeurs de pixel de mon image en ces points. En faisant un truc comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 In [159]: points Out[159]: [(74.5, 319.29166666666663), (103.66666666666669, 280.75), (132.83333333333331, 239.08333333333331), (164.08333333333331, 195.33333333333331), (190.125, 160.95833333333331), (213.04166666666663, 126.58333333333331), (233.875, 92.208333333333314), (267.20833333333331, 49.5), (294.29166666666663, 16.166666666666629)]
mais bon comme c'est x et y sont des array cela ne marche pas très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 points=np.array(points) x=points[:,0] y=points[:,1] valeur_pixel=image[y,x]
me renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 image[points[:,0],points[:,1]]
alors que si je fais à part image[74.5, 319.29166666666663] ca marche!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IndexError: arrays used as indices must be of integer (or boolean) type
Une idée pour orienter mes recherches ?? merci d'avance
Partager