| |
Membre enregistré 206 messages |
|
Posté le 08 avril 2013 - 16:30 |
Bonjour,
Je cherche un moyen pour reconnaitre un numéro de téléphone que je récupère dans une image (GIF). Est-ce possible avec Webdev ?
Merci |
| |
| |
| | | |
|
| | |
| |
Posté le 09 avril 2013 - 15:24 |
Bonjour,
Oui bien sur, il te suffit d'exploiter MODI, compris dans Microsoft Office. Un appel a la procedure MODI te permettra de récuperer le texte de l'image en résultat.
Stephane |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 206 messages |
|
Posté le 09 avril 2013 - 16:15 |
Bonjour,
Merci pour cette piste.
Pourrais-tu être plus précis concernant MODI et comment appeler cette procédure depuis Webdev ? |
| |
| |
| | | |
|
| | |
| |
Posté le 09 avril 2013 - 23:07 |
Voici un bon de code en Windev, pas sur que cela fonctionnera en Webdev
PROCEDURE GetOCRConversion(nTempName est une chaîne)
strRecText est une chaîne = ""
SI fFichierExiste(nTempName)=Faux ALORS RENVOYER strRecText
nOCREngine est un objet Automation dynamique nOCREngine = ObjetActif("MODI.Document") inputFile est une chaîne =nTempName nOCREngine = allouer un objet Automation "MODI.Document" nOCREngine>>Create(inputFile)
// Lancement de la reconnaissance QUAND EXCEPTION DANS nOCREngine>>OCR() strRecText=nOCREngine>>Images(0)>>Layout>>Text FAIRE //erreur("Une exception a été levée pendant l'analyse du document.", ExceptionInfo(errMessage)) ExceptionActive() strRecText="" FIN
//nOCREngine>>OCR() libérer nOCREngine
RENVOYER strRecText |
| |
| |
| | | |
|
| | |
| |
Posté le 10 avril 2013 - 00:06 |
Bonjour
pour info, il est TRES fortement reccomandé de ne PAS faire des appels de ce type à word/office dans un site web (voir les longues discussions sur ce sujet dans le forum)
Par contre, il existe un OCR qui devrait être intégrable, fais par/supporté par google qui s'appelle, si mes souvenirs sont bon, tesseract
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com/index_FR.html
On 4/9/2013 4:07 PM, Stephane wrote:
Voici un bon de code en Windev, pas sur que cela fonctionnera en Webdev
PROCEDURE GetOCRConversion(nTempName est une chaîne)
strRecText est une chaîne = ""
SI fFichierExiste(nTempName)=Faux ALORS RENVOYER strRecText
nOCREngine est un objet Automation dynamique nOCREngine = ObjetActif("MODI.Document") inputFile est une chaîne =nTempName nOCREngine = allouer un objet Automation "MODI.Document" nOCREngine>>Create(inputFile)
// Lancement de la reconnaissance QUAND EXCEPTION DANS nOCREngine>>OCR() strRecText=nOCREngine>>Images(0)>>Layout>>Text FAIRE //erreur("Une exception a été levée pendant l'analyse du document.", ExceptionInfo(errMessage)) ExceptionActive() strRecText="" FIN
//nOCREngine>>OCR() libérer nOCREngine
RENVOYER strRecText
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 206 messages |
|
Posté le 10 avril 2013 - 13:13 |
Bonjour,
Le problème c'est qu'avec MODI ou tesseract de Google, l'OCR ne me renvoie rien car mon image est trop petite (hauteur 10 pixels). Si je passe une image plus grande, le résultat est bon.
Avec d'autres soft OCR, je parviens malgré tout à reconnaître les caractères mais je ne parviens pas à les piloter depuis Webdev ou Windev...
Pour info, voici le type d'image que je recherche à reconnaitre.
|
| |
| |
| | | |
|
| | |
| |
Posté le 10 avril 2013 - 18:22 |
Bonjour Cédric,
Il faut peut-être alors essayer d'agrandir l'image dans un champ image et de sauvegarder cette image agrandie pour l'exploiter.
Cordialement François |
| |
| |
| | | |
|
| | |
| |
Posté le 10 avril 2013 - 18:24 |
Bonjour Cedric
rien ne t'empêche de changer la taille de l'image pour qu'elle fasse 30 de haut à la place (ou plus) : - chargement de l'image dans un champ image haute qualité 100 % de la taille de l'image d'origine - changement de taille du champ image - dsauveimage enregistre limge sous l nouvelle taille - OCR qui marche !
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com/index_FR.html
On 4/10/2013 6:22 AM, Cédric J. wrote:
Bonjour, Le problème c'est qu'avec MODI ou tesseract de Google, l'OCR ne me renvoie rien car mon image est trop petite (hauteur 10 pixels). Si je passe une image plus grande, le résultat est bon. Avec d'autres soft OCR, je parviens malgré tout à reconnaître les caractères mais je ne parviens pas à les piloter depuis Webdev ou Windev... Pour info, voici le type d'image que je recherche à reconnaitre.
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 206 messages |
|
Posté le 10 avril 2013 - 18:52 |
Merci Fabrice mais j'ai déjà essayé d'agrandir l'image etl'image reste toujours illisible... |
| |
| |
| | | |
|
| | |
| |
Posté le 10 avril 2013 - 19:10 |
Rebonjour
je me demande si ce n'est pas du au fait que les caractères sont complètement en bordure d'image (collés contre le bord haut...)
Tu peux aussi essayer de leur rajouter une bordure blanche (ci-dessous, B représente du blanc, pas la lettre
BBBBBBBBBBBB B0383979797B BBBBBBBBBBBB
Il est possible que l'absence de contraste blanc/noir en haut de ton image soit la raison du problème
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com/index_FR.html
On 4/10/2013 12:00 PM, Cédric J. wrote:
Merci Fabrice mais j'ai déjà essayé d'agrandir l'image etl'image reste toujours illisible...
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 206 messages |
|
Posté le 10 avril 2013 - 19:33 |
Super Fabrice ! J'ai rajouté une bordure blanche et ça fonctionne. Grand merci pour ton aide. |
| |
| |
| | | |
|
| | |
| |
Posté le 12 avril 2013 - 11:07 |
Merci à tous.
J'ai appliqué cette solution d'OCR à Windev pour intercepter les appels entrants sur mon téléphone GIGASET DX800A.
Quand je suis appelé, la fiche de mon contact s'ouvre automatiquement à l'écran.
Cordialement François |
| |
| |
| | | |
|
| | |
| |
Posté le 28 avril 2013 - 13:53 |
Bonjour cedric est ce que tu peux mettre ton code source complet car je suis intéressé par la reconnaissance optique mon emai est wicef1509@gmail.com
coordialement |
| |
| |
| | | |
|
| | |
| |
Posté le 29 avril 2013 - 11:44 |
Bjr, Comme c'est un partage, posons le code pour tous sur le forum Cordialement |
| |
| |
| | | |
|
| | |
| |
Posté le 24 janvier 2014 - 15:23 |
Bonjour,
moi aussi ça m'intéresse ...
merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 message |
|
Posté le 16 février 2015 - 17:24 |
Bonjour Je suis également intéressé par cet exemple.
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 message Popularité : -1 (1 vote) |
|
Posté le 16 novembre 2015 - 15:42 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 21 messages Popularité : +2 (2 votes) |
|
Posté le 27 novembre 2015 - 11:27 |
Bonjour à tous,
Je suis à la recherche d'un moyen pour convertir en texte un morceau d'image affiché à l'écran. Avec WebDev je sélectionne le morceau puis l'envoie sur un site de conversion. Cela marche super (voir les 2 exemples ci-dessous webservice et REST). Cependant je trouve cela un peu lourd. Une bonne vieille DLL serait plus efficiente mais je n'en n'ai pas trouvé d'assez documentée pour me lancer. Les 2 sites web sont payants et leurs modèles d'affaires ne sont pas compatible avec l'usage que j'imagine (traduction de nombreux petits morceaux d'écran versus de quelques gros documents complets). Les 2 procédures ci-dessous ont été plutôt, pour moi, un exercice d'apprentissage autour des appelles webservice et REST et je suis à l'écoute de toutes suggestions en ce qui concerne les OCR.
Marc
PS: Je vais lire les 2 LST 81 et 93 qui proposent des solutions bien que j'ai vu, dans certains autres articles, qu'elles ne fonctionnent pas/plus sur Win10 et que le service Google n'est plus disponible.
Procedure ocrwebservice_com(Text_sis string,... User_sis string= "GANDAR",... Key_sis string= "xxxxxx",... Folder_sis string= fWebDir()+"\_Bunch\OCR\",... File_sis string= "Exemple.gif")
OCRWebServiceRecognize_so est OCRWSResponse OCRWebServiceRecognize_siis OCRWebServiceRecognize OCRWebServiceRecognize_si.user_name= User_s OCRWebServiceRecognize_si.license_code= Key_s IF NOT fFileExist(Folder_s+File_s) THEN ExceptionThrow(1) OCRWebServiceRecognize_si.OCRWSInputImage.fileData= fChargeBuffer(Folder_s+File_s) OCRWebServiceRecognize_si.OCRWSInputImage.fileName= File_s OCRWebServiceRecognize_si.OCRWSSetting.ocrLanguages= "ENGLISH" OCRWebServiceRecognize_si.OCRWSSetting.convertToBW= True OCRWebServiceRecognize_si.OCRWSSetting.getOCRText= True OCRWebServiceRecognize_si.OCRWSSetting.outputDocumentFormat = "TXT" OCRWebServiceRecognize_si.OCRWSSetting.pageNumbers= 1
OCRWebServiceRecognize_so = OCRWebServiceRecognize(OCRWebServiceRecognize_si)
IF OCRWebServiceRecognize_so.errorMessage="" THEN Occ_iest entier = OCRWebServiceRecognize_so.ocrText.ArrayOfString..Occurrence FOR i=1 _TO_ Occ_i Text_s+=OCRWebServiceRecognize_so.ocrText.ArrayOfString[i].string+TAB END
RENVOYER True ELSE Text_s+=OCRWebServiceRecognize_so.errorMessage..Value+TAB RENVOYER False END PROCEDURE NewOCR_com( Text_s is string,... // Text extrait de l'image Key_s is string = "xxxx",... // Clef à demandé à newocr.com Folder_s is string = fWebDir()+"\_Bunch\OCR\",... // C;\xxx\xxx\xxx\ File_s is string = "Exemple.gif") // Fichier image à traduire // Upload le fichier et obtient un ID HTTPCreateForm("FORM") // Il n'y a pas de paramètre supplémentaires HTTPAddParameter("FORM", "file", File_s) est mis pour mémoire IF NOT fFileExist(Folder_s+File_s) THEN ExceptionDéclenche(1) HTTPAddFile("FORM", "file", fWebDir()+"\_Bunch\OCR\"+File_s) // Préparation et envoie de la requête OCR_Req_s est un httpRequête OCR_Req_s.URL = ChaîneConstruit("http://api.newocr.com/v1/upload…) OCR_Req_s.Méthode = httpPost OCR_Rep_s is a httpResponse = HTTPSendForm("FORM", OCR_Req_s) JSON_Rep_s is Variant = JSONToVariant(OCR_Rep_s.Content) // Vérification (il y a moyen de faire mieux) IF JSON_Rep_s.status<>"success" THEN RESULT False HTTPCancelForm("FORM") // Converti en texte l'ID reçu HTTPRequest(StringBuild("http://api.newocr.com/v1/ocr…)) ResCode is string = HTTPGetResult() JSON_Rep_s = JSONToVariant(ResCode) // Extrait le texte converti Text_s = JSON_Rep_s.data.text RESULT JSON_Rep_s.status="success"
|
| |
| |
| | | |
|
| | |
| |
Posté le 15 décembre 2015 - 14:44 |
I find another free online ocr http://www.online-code.net/ocr.html to convert image to text, it supports 40+ languages, and can save converted text to editable txt file and searchable pdf document. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 333 messages Popularité : +9 (13 votes) |
|
Posté le 09 décembre 2017 - 00:10 |
@ tonytong pouvez vous svp nous aider? merci d'avance |
| |
| |
| | | |
|
| | |
| |
Posté le 05 septembre 2018 - 15:00 |
Bonjour.
Petit complément à la solution MODI.Document. Dans certains cas, MODI a tendance à faire une rotation de l'image avant de traduire l'image en texte. On peut contourner avec cette solution :
Procedure OCR_ImageVersTexte(nTempName est une chaîne) strRecText est une chaîne = ""
SI fFichierExiste(nTempName)=Faux ALORS RENVOYER strRecText
nOCREngine est un objet automation dynamique nOCREngine = ObjetActif("MODI.Document") inputFile est une chaîne =nTempName nOCREngine = allouer un objet automation "MODI.Document" nOCREngine>>Create(inputFile)
QUAND EXCEPTIONEXCEPTION DANS nOCREngine>>OCR (miLANG_FRENCH..Valeur, False, False) strRecText=nOCREngine>>Images(0)>>Layout>>Text FAIRE Erreur("Une exception a été levée pendant l'analyse du document.", ExceptionInfo(errMessage)) ExceptionActive() strRecText="" FIN
Libérer nOCREngine
RENVOYER strRecText Il faut définir l'énumération suivante :
EMiLanguages est une Enumération miLANG_CHINESE_SIMPLIFIED = 2052 miLANG_CHINESE_TRADITIONAL = 1028 miLANG_CZECH = 5 miLANG_DANISH = 6 miLANG_DUTCH = 19 miLANG_ENGLISH = 9 miLANG_FINNISH = 11 miLANG_FRENCH = 12 miLANG_GERMAN = 7 miLANG_GREEK = 8 miLANG_HUNGARIAN = 14 miLANG_ITALIAN = 16 miLANG_JAPANESE = 17 miLANG_KOREAN = 18 miLANG_NORWEGIAN = 20 miLANG_POLISH = 21 miLANG_PORTUGUESE = 22 miLANG_RUSSIAN = 25 miLANG_SPANISH = 10 miLANG_SWEDISH = 29 miLANG_SYSDEFAULT = 2048 miLANG_TURKISH = 31 FIN
Bon dev |
| |
| |
| | | |
|
| | |