PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → API Google Cloud Vision
API Google Cloud Vision
Débuté par Alain LACLEF, 28 mar. 2018 08:54 - 9 réponses
Posté le 28 mars 2018 - 08:54
Bonjour à tous :)

j'essaye d'implémenter l'API Cloud Vision Google qui est bluffante (du moins en test!)
https://cloud.google.com/vision/docs/ocr

De nombreux exemple de code sont donnés ici :
https://cloud.google.com/vision/docs/detecting-text

Comment adapter cela à Windev ?

Merci de votre aide :merci:
Membre enregistré
940 messages
Popularité : +66 (68 votes)
Posté le 28 mars 2018 - 12:24
bonjour

à tester une fois que vous aurez activer votre projet sur votre compte Google, votre clé API et la facturation ( un peu relou d'ailleurs )

rest_request est une restRequête
rest_response est une restRéponse
request_data est un Variant
buffer_image est un Buffer=fChargeBuffer(s_image_path)
rest_request..URL="https://vision.googleapis.com/v1/images:annotate?key=VotreCleAPI"
rest_request..Méthode=httpPost
request_data.requests[1].image.content=Crypte(buffer_image,"",crypteAucun,encodeBASE64)
request_data.requests[1].features[1].type="TEXT_DETECTION"

Info(VariantVersJSON(request_data))
rest_response=RESTEnvoie(rest_request)
SI ErreurDétectée ALORS
Info(ErreurInfo())
SINON
Info(rest_response..Contenu)
FIN
Membre enregistré
940 messages
Popularité : +66 (68 votes)
Posté le 28 mars 2018 - 12:30
pour le préambule d'activation de l'API :

=> https://cloud.google.com/vision/docs/before-you-begin
Membre enregistré
940 messages
Popularité : +66 (68 votes)
Posté le 28 mars 2018 - 12:44
il manque un bout dans mon code,

il faut rattacher le variant en JSON à votre requête .

rest_request est une restRequête
rest_response est une restRéponse
request_data est un Variant
buffer_image est un Buffer=fChargeBuffer(s_image_path)
rest_request..URL="https://vision.googleapis.com/v1/images:annotate?key=VotreCleAPI"
rest_request..Méthode=httpPost
request_data.requests[1].image.content=Crypte(buffer_image,"",crypteAucun,encodeBASE64)
request_data.requests[1].features[1].type="TEXT_DETECTION"

rest_request..ContentType="application/json"
rest_request..Contenu=VariantVersJSON(request_data)

rest_response=RESTEnvoie(rest_request)
SI ErreurDétectée ALORS
Info(ErreurInfo())
SINON
Info(rest_response..Contenu)
FIN
Message modifié, 28 mars 2018 - 12:44
Membre enregistré
82 messages
Posté le 30 mars 2018 - 03:01
:merci: :merci: je teste demain et te tiens au courant!

tu peux me faire la même pour l'API de traduction?

merci beaucoup de ton aide.8)
Membre enregistré
82 messages
Posté le 30 mars 2018 - 04:09
:merci: ça marche impeccable. Reste à parser le .json...
tu es une bête, merci beaucoup.
Membre enregistré
82 messages
Posté le 01 avril 2018 - 23:36
J'essaye l'API translate mais le doc n'est pas la même :

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
--data "{
'q': 'Hello world',
'q': 'My name is Jeff',
'target': 'de'
}" "https://translation.googleapis.com/language/translate/v2"

Peux-tu encore m'aider ?

Merci
Membre enregistré
82 messages
Posté le 02 avril 2018 - 08:43
Pour translate j'ai trouvé :)
http://informatique-loiret.fr/tutoriaux/windev-traduire-des-phrases-avec-lapi-google-cloud-translate-dans-vos-applications/…

globalement ta solution est meilleure car elle n'utilise pas la constante typeMimeJSON qui n'existe que depuis la version 22.

Merci encore :merci:
Posté le 12 février 2020 - 13:56
Bonjour ,

J´essaye d´intégrer Google Vision API - OCR dans un projet Windev .
Dans le test de Google Vision API - OCR ça marche impécablement et le code que vous avez gentillement fournit marche aussi. Merci.

TOUTEFOIS quand aux résultats il y a une grande différence entre le résultat du test de la page Google Vision et le retour de Google Vision API - Windev quand il s´agit de caractères accentués ou spécials. Détail : le texte est en PORTUGUAIS.

Je fournis, bien sûr, la même image en format JPG dans les deux cas !

Par exemple :
Texte en retour de :
page de test de Google Vision API : VERSUS retour de Google Vision API - Windev

Emissão versus Emissão

NOTA FISCAL DE SERVIÇOS ELETRÔNICA versus NOTA FISCAL DE SERVIÇOS ELETRÔNICA

Código de Verificação versus Código de Verificação

Voilá mon code Windev :

////// Google Vision API - version 1
rest_request est une restRequête
rest_response est une restRéponse
request_data est un Variant


buffer_image est un Buffer = fChargeBuffer(ArqImg)
rest_request..URL = "https://vision.googleapis.com/v1/images:annotate?key=AIzaSyBnKHxnv_zNBitBGRVtg9EDzvxNsam_A_M"
rest_request..Méthode = httpPost
request_data.requests[1].image.content = Crypte(buffer_image,"",crypteAucun,encodeBASE64)
request_data.requests[1].features[1].type = "TEXT_DETECTION"

rest_request..ContentType = "application/json"
rest_request..Contenu = VariantVersJSON(request_data)

rest_response = RESTEnvoie(rest_request)

SI ErreurDétectée ALORS
Info(ErreurInfo())
SINON
Info( rest_response..Contenu)
ArquivoTextoGeradoOCRGoogleVisionAPI is string = rest_response..Contenu
EdtTextoGeradoOCRGoogleVision = rest_response..Contenu
FIN


Avez vous une suggestion dans ce code pour que les résultats soient les mêmes, s´il vous plait.

Merci d´avance .
Membre enregistré
940 messages
Popularité : +66 (68 votes)
Posté le 13 février 2020 - 09:53
bonjour Chris,

tentez de forcer la languageHints pour que google sache à quoi correspond le texte..

request_data.requests[1].imageContext.languageHints[1]= "pt"


pour la liste des langues :

https://cloud.google.com/vision/docs/languages

à tester... ;)

bon dev