Bonjour,
J'espère que tu es prêt à souffrir un peu lol.
Tu veux comparer la surface totale de ton bol avec la surface total des petits points verts qu'il contient. Premièrement, je te conseillerais de trouver un moyen d'avoir une couleur très contrastée pour ton contour de bol (peut-être mettre un tape rouge tout autour).
Ensuite, tu peux charger une
java.awt.image.BufferedImage
avec
javax.imageio.ImageIO.read()
.
Maintenant, tu peux lire chaque pixel avec
BufferedImage.getRGB(int x, int y)
.
Pour ce qui est de ton algorithme, tu vas avoir besoin de quelques variables:
- long surface_bol
- long surface_verte
- boolean dans_bol
- boolean dernier_rouge
Puis ton pseudo code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| pour tous les y
pour tous les x
// Regarder si on entre ou sort du bol (tenir compte de l'épaisseur grace à "dernier_rouge")
si est_rouge et pas dernier_rouge: dans_bol != dans_bol
dernier_rouge = est_rouge
// Surfaces
si dans_bol: surface_bol++
si est_vert: surface_verte++
// À la fin
Pourcentage surface: surface_verte/dans_bol |
Pour ton est_rouge et est_vert, il faudra bien entendu gérer les tolérances
EDIT: Je viens de voir que tu voulais utiliser la librairie "Image J" 
Désolé, je ne la connais pas
Partager