Il doit être possible de montrer au prof que les choix ne sont pas les bons et de lui proposer d'autres pistes.
éventuellement en explorant la présentation de grosses cartes avec qu'une seule lettre sur un Mega...
On a un contraste bien marqué, caméra montée solidement à une distance pré-réglée pour que la mise au point soit bonne, et lecture de l'image...
Vous pouvez essayer de faire un algorithme qui va reconnaitre les gros blocs en analysant à la volée le décollage du JPEG (sans tout garder en mémoire) et bâtir une représentation mémoire d'un caractère en matrice 5x5 et ensuite trouver quel caractère s'en rapproche le plus....
mais ça ne va pas être simple à cause de la mémoire limitée
Bonjour, encore désolé de répondre longtemps après, est-ce que le fait de "pixeliser" l'image va me prendre moins de place, ce que je veut faire c'est que quand je reçoit l'image,la couleur du premier pixel est stocké dans celui à droite et des deux autres du bas; est-ce que le fait d'avoir 1/4 des pixels qui contiennent leur vraie couleur va me permettre de gagner de la place?
Oui pixeliser l'image est un bon début, c'est ce que je proposais un peu plus haut ainsi que J-M-L. Tu peux aussi centrer ta lettre en un endroit bien précis de ton capteur pour savoir où se trouve approximativement la lettre dans la matrice.
Il faut que tu trouves le moyen d'accéder aux valeurs des pixels, ensuite il te faudra écrire un algorithme qui reconnait la lettre.
D'accord, merci à tous pour toutes vos réponses, ça m'a été d'une grande aide.
lesept:
Il faut que tu trouves le moyen d'accéder aux valeurs des pixels, ensuite il te faudra écrire un algorithme qui reconnait la lettre.
le premier problème n'est pas simple car son appareil photo retourne directement un JPEG et pas un flux de pixel. décompresser du JPEG c'est pas tout simple et ça bouffe de la mémoire. Impossible sur un UNO et suivant les images peut ne pas tenir sur un MEGA --> d'où l'idée de baisser au max la résolution genre 160 x 120, avec une matrix 5x5 ou 8x6 (si vous voulez des carrés) pour les caractères
la DCT inverse par exemple (pour donner une idée du calcul) c'est faire:
Désolé pour mon temps de réaction, je suis sûr que cette équation va m'être utile mais est ce que tu pourrais m'expliquer ce que représente :
-N (je crois que c'est le nombre de pixels à simplifier dans un bloc de pixels ; et si c'est ça, je ne sais pas comment savoir combien c'est)
- i et j (là je ne vois pas du tout) et du coup C(i ou j) et DCT(i ,j)
-et pixel(x,y) je ne vois pas ce que ça va donner en sortie
(En fait je ne connais aucune des variables ^^)
Regardez le lien Wikipedia il y a les infos (sinon il y a plein d’articles sur le décodage du jpeg)
Bonsoir, les projets sont terminés, je reviens pour vous dire merci à tous, je suis passé devant le jury en mai (je crois) et ça s'est plutôt bien passé, donc pour vous expliquer, j'ai séparé le programme en deux parties :
-Sur Arduino, j'ai réussi à prendre des photos et à les enregistrer dans la carte SD
-Pour reconnaître chaque lettre, j'ai utilisé Processing en prenant une image de chaque lettre sur internet comme référence, puis j'ai réduit le nombre de pixels pour faciliter la manipulation de l'image (j'ai enregistré la couleur d'un pixel, j'ai regardé si elle était en dessous ou au dessus d'une limite que j'ai choisi pour voir si elle était sombre ou claire puis j'ai appliqué soit noir, soit blanc, au carré de 1212 pixels composé de façon à ce que le pixel analysé soit dans le coin supérieur gauche du carré); j'ai ensuite comparé chaque lettre aux 25 autres en repérant quels sont les groupes de gros pixels (carré de 1212) qui permettraient à eux seuls de différencier une lettre d'une autre, pour la plus part des lettres, c'était facile, le plus dur à été pour différencier les lettres "a","e" et "s" mais au final j'ai réussi. Ce programme était fini avant celui sur Arduino et quand j'ai voulu tester les deux programmes ensemble (reconnaître la lettre de la photo prise par la caméra branchée à la carte Arduino), je n'ai pas réussi à transférer l'image depuis la carte SD vers l'ordinateur donc le programme n'a pas pu être vérifié avec d'autres images de lettre. pour l'affichage des caractères sur la matrice à LED, j'ai décidé de simplement définir une matrice 2*3 et le mettre 1 si la LED doit être allumée ou 0 si elle doit être éteinte, je n'ai pas voulu brancher la matrice à LED car je trouvais ça inutile, j'ai juste affiché la matrice.
Au final je pense que c'est bon car j'ai obtenu au BAC, 18 en SI comme note globale (écrit+évaluation en continu+Projet)
Bravo pour la note! Et merci pour avoir donné suite à votre post
+1. Très malin d'utiliser le PC pour l'analyse d'image (pas eu besoin de matériel sup). Il te manque juste la partie communication entre le PC et l'arduino.
