Utilisation des statistiques d'image
Et si je voulais connaître la couleur moyenne ou la couleur occupant la plus grande surface dans une région ?
Utilisez les statistiques - Statistics !
ROI Région d'intérêt
\
Le format de roi est un tuple (x, y, w, h).
- x : coordonnée x du coin supérieur gauche de la région ROI
- y : coordonnée y du coin supérieur gauche de la région ROI
- w : largeur de la ROI
- h : hauteur de la ROI
Statistiques
image.get_statistics(roi=Auto)
Où roi est la région cible. Notez que les paramètres tels que roi et bins doivent être explicitement indiqués, par exemple :
img.get_statistics(roi=(0,0,10,20))
Si l'on écrit img.get_statistics((0,0,10,20)), la ROI ne fonctionnera pas.
statistics.mean renvoie la moyenne des niveaux de gris (0-255) (int). Vous pouvez également l'obtenir via statistics[0].
statistics.median renvoie la médiane des niveaux de gris (0-255) (int). Vous pouvez également l'obtenir via statistics[1].
statistics.mode() renvoie le mode (0-255) (int) des niveaux de gris. Vous pouvez également l'obtenir via statistics[2]
statistics.stdev() renvoie l'écart type de la valeur des niveaux de gris(0-255) (int). Vous pouvez également l'obtenir via statistics[3].
statistics.min() renvoie la valeur minimale des niveaux de gris(0-255) (int). Vous pouvez également l'obtenir via statistics[4].
statistics.max renvoie la valeur maximale des niveaux de gris (0-255) (int). Vous pouvez également l'obtenir via statistics[5].
statistics.lq renvoie le premier quartile des niveaux de gris (0-255) (int). Vous pouvez également l'obtenir via statistics[6].
statistics.uq renvoie le troisième quartile des niveaux de gris (0-255) (int). Vous pouvez également l'obtenir via statistics[7].
Ce qui précède concerne la valeur des niveaux de gris ; ce qui suit,
- l_mean, l_median, l_mode, l_stdev, l_min, l_max, l_lq, l_uq,
- a_mean, a_median, a_mode, a_stdev, a_min, a_max, a_lq, a_uq,
- b_mean, b_median, b_mode, b_stdev, b_min, b_max, b_lq, b_uq,
correspond à la moyenne, la médiane, le mode, l'écart type, le minimum, le maximum, le premier quartile et le troisième quartile des trois canaux LAB.
Exemple
Détecter la valeur de couleur dans la zone supérieure gauche.
import csi, image, time
csi0 = csi.CSI()
csi0.reset() # Initialise la caméra
csi0.pixformat(csi.RGB565) # Format RGB565.
csi0.framesize(csi.QVGA)
csi0.snapshot(frames=10) # Ignore 10 images pour que les nouveaux réglages prennent effet
csi0.auto_whitebal(False) # Crée un objet horloge pour suivre le FPS.
ROI=(80,30,15,15)
while(True):
img = csi0.snapshot() # Prend une photo et retourne l'image.
statistics=img.get_statistics(roi=ROI)
color_l=statistics.l_mode
color_a=statistics.a_mode
color_b=statistics.b_mode
print(color_l,color_a,color_b)
img.draw_rectangle(ROI)
Résultat :

Terminal
56 66 51
56 66 55
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 55
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51