Aujourd’hui je vous présente un petit script qui permet de reconnaître une plaque d’immatriculation depuis une photo.
L’excellente librairy qui permet de faire ça n’est pas une fonction windev mais une API… que l’on va utiliser dans windev.
Explication sur l’API : Cloud API — openalpr 2.5.103 documentation
Voir le site OpenALPR – Automatic License Plate Recognition pour plus de détail sur cette API.
Il faudra vous inscrire (c’est gratuit, pour 2000 reconnaissances par jour) afin d’obtenir la LicenceKey de l’API : OpenALPR Login
// Déclaration des variables
LaReponse est une restRéponse
sFichier est une chaîne
req est une restRequête
vRésultatRetourné est un Variant
//Chemin de la photo
sFichier= fRepDonnées() + fSep + "lavoiture.jpg"
// Envoi et récupération du numéro de plaque détecté par l'API
req.Contenu = Encode(fChargeBuffer(sFichier),encodeBASE64)
req.Méthode = httpPost
req.URL = "https://api.openalpr.com/v2/recognize?recognize_vehicle=1&country=us&secret_key=sk_DEMODEMODEMODEMODEMODEMO'"
LaReponse = RESTEnvoie(req)
vRésultatRetourné = JSONVersVariant(LaReponse.Contenu)
// Traitement de la réponse
SELON vRésultatRetourné..Occurrence
CAS 0 : Info("Pas de plaque d'immatriculation trouvée !")
CAS 1 : Info("La plaque d'immatriculation trouvée : " + vRésultatRetourné.result[1].plate)
CAS 2 : Info("2 plaques trouvée " + vRésultatRetourné.result[1].plate + " et " + vRésultatRetourné.result[2].plate)
FIN
Voila ! On imagine facilement quelle genre d’applicatif on pourrais faire avec cette fonction géniale et open-source.
L’API permet de reconnaître le modèle et la couleur de la voiture aussi si j’ai bien compris…
Partageons nos connaissances
Bonjour,
j’ai testé le code, en remplaçant bien ma SK, j’ai toujours une erreur à l’exécution:
« Vous avez appelé la fonction JSONVersVariant.
Format JSON invalide »
Une idée?
Merci,
Romain.
En quelle version Windev es tu ?
Car encode() n’existe pas en wd21
sinon va voir cette vidéo.
https://www.fekwx.com/threads/windev-api-openalpr-lire-les-plaques-dimmatriculation.789/
Bonjour j’ai testé le code il me renvoie toujours le même message »
Info(« 2 plaques trouvée » + vRésultatRetourné.result[1].plate + » et » + vRésultatRetourné.result[2].plate)
»
même si l’image ne contient pas de plaque d d’immatriculation