c# - opensource - vb net ocr read text from image




Come utilizzare Microsoft OCR Library(Microsoft.Windows.Ocr) in un progetto API Web MVC4 ASP.Net? (4)

Ho usato la soluzione MODI in pacchetto con MS Office per alcuni anni, e ne sono stato abbastanza contento (era gratuito se hai acquistato Office). Sono rimasto piuttosto deluso quando è stato interrotto. Ho provato Tesseract ... Volevo davvero piacermi, ma l'ho trovato lento e impreciso per il tipo di macchina olandese di buona qualità ... e come te, non potevo giustificare spendere nulla a $ 200 per quello che era essenzialmente un progetto per hobby .

Dopo una ricerca disperata, qualcuno qui mi ha indirizzato al TOCR (un prodotto Transym). Un'epifania seguì poco dopo. ;-) Penso di aver bisogno di dire a questo punto che non sono affiliato con Transym in alcun modo, e sì, ho pagato il prezzo pieno ... di 60 sterline! (no typo ... sessanta sterline), che, IVA inclusa, ha funzionato a 113 euro.

È essenzialmente pensato per gli integratori (include un'app di scansione / visualizzatore / OCR, ma è semplicemente inteso come una dimostrazione: se acquisti la licenza, ottieni il suo codice sorgente). L'API è obsoleta (è, come fanno i motori OCR, una base di codice piuttosto matura), ma è veloce, stabile e inaspettatamente accurata. Non accurato come il motore DokuStar o altri motori esoterici, ma per la mia applicazione (tipo di macchina olandese e inglese), esso ha le sue caratteristiche rispetto a vari motori che sono ben a nord di $ 1000. L'accuratezza del riconoscimento sul tipo di macchina olandese è eccellente (non fa la scrittura a mano). A mio parere, in termini di rapporto qualità-prezzo, è semplicemente incredibilmente buono. Per quanto riguarda l'API: Ho scritto un rudimentale wrapper .NET attorno ad esso per soddisfare le mie esigenze - questo è stato fatto in poche sere.

C'è una versione eval disponibile sul loro sito web ( http://www.transym.com/index.htm ). E no, non ho soldi se lo fai ;-)

TL; DR:

Qualcuno sa come fare riferimento all'assembly Microsoft.Windows.Ocr (/ WindowsPreview.Media.Ocr.dll ) su un'applicazione Web ASP.Net sul lato server come MV4 Web API e utilizzare la funzionalità OCR in quell'assembly per un'immagine fotografica come input ed estrai il contenuto del testo al di fuori di esso? In caso affermativo, si prega di fornire istruzioni dettagliate nella risposta.

Dettagli della domanda (e cosa ho provato fino ad ora)

Sto creando un'applicazione Web che acquisisce un'immagine caricata sul server (tramite una schermata dell'interfaccia utente di caricamento file), quindi legge il testo utilizzando OCR e visualizza il testo nella pagina successiva, proprio accanto all'immagine caricata.

Dal momento che la maggior parte delle librerie OCR commerciali costa un braccio e una lunghezza ( oltre $ 1.300 l'ultima volta che ho controllato ) ho pensato di provare e utilizzare Microsoft OCR Library Microsoft.Windows.Ocr che è GRATUITO e sembra essere molto semplice e intuitivo da usare.

Così ho provato a installare il pacchetto Microsoft.Windows.Ocr Nuget sul mio progetto API Web MVC4 ASP.Net e questo è riuscito.

Dopodiché, ho esaminato i riferimenti ai progetti dell'API Web MVC4 e, con mia sorpresa, non ho trovato alcun riferimento all'assembly Microsoft.Windows.Ocr.dll .

Quindi ho provato ad aggiungere un riferimento alla versione x86 dell'assembly Microsoft.Windows.Ocr.dll navigando su \lib\win81\x86 nella cartella \packages e selezionato WindowsPreview.Media.Ocr.dll da \lib\win81\x86 cartella

Nota: il nome Assembly è WindowsPreview.Media.Ocr.dll e non Microsoft.Windows.Ocr.dll, non è sicuro del perché!

Quando l'ho fatto e ho fatto clic su OK , ho ricevuto il seguente messaggio di errore .

---------------------------
Microsoft Visual Studio
---------------------------
A reference to   
'D:\TestProjects\packages\Microsoft.Windows.Ocr.1.0.0\lib\win81\x86\
 WindowsPreview.Media.Ocr.dll' could not be added. Please make sure 
 that the file is accessible, and that it is a valid assembly 
 or COM component.
---------------------------
OK   
---------------------------

Ho quindi scoperto dalla pagina Nuget che le "Piattaforme supportate" sono solo Windows Phone 8, Windows Phone 8.1, Windows 8.1 (solo app di Windows Store).

Ma sicuramente, ci deve essere un modo per usare questa dll OCR sul lato server in un'applicazione ASP.Net?

Qualcuno sa come fare riferimento all'assembly Microsoft.Windows.Ocr (/ WindowsPreview.Media.Ocr.dll ) su un'applicazione Web ASP.Net sul lato server come MV4 Web API e utilizzare la funzionalità OCR in quell'assembly per un'immagine fotografica come input ed estrai il contenuto del testo al di fuori di esso? ** In caso affermativo , fornisci le istruzioni dettagliate nella risposta.

Qualsiasi "hack" e / o codice di esempio sarebbe molto apprezzato !!

Grazie!!


IMHO, probabilmente non vale il tuo sforzo per provare a utilizzare una libreria che non è supportata sulla piattaforma che stai prendendo di mira.

È possibile controllare questa risposta per alcune alternative gratuite.


Se si utilizza Visual Studio 2015 e Windows 10, il

Microsoft.Windows.Ocr

è stato spostato su Universal Windows Platform. È disponibile come

Windows.Media.Ocr

Quindi è necessario aggiornare il VS 2015 con strumenti per Windows 10 abilitati.

Ho fatto quanto segue e Windows.Media.Ocr è stato aggiunto come riferimento nella mia API Web.

  1. Nei riferimenti del progetto API Web, fare clic con il pulsante destro del mouse su qualsiasi riferimento e fare clic su Visualizza in Visualizzatore oggetti. Il tuo browser degli oggetti sarà simile a questo
  2. C'è un pulsante "..." proprio accanto alla casella "Sfoglia: tutti i componenti". Il suggerimento dice "Modifica set di componenti personalizzati". Clicca!
  3. Nella casella "Modifica set di componenti personalizzati" fai clic sulla scheda Sfoglia e vai a "C: / Programmi (x86) / Kit di Windows / 10 / Riferimenti / Windows.Foundation.UniversalApiContract / 1.0.0.0" e fai clic sul file winmd che risulta e fai clic su Aggiungi.
  4. Hit Ok!
  5. Ora fai clic sull'icona che dice "Aggiungi ai riferimenti nel progetto selezionato in Solution Explorer" (è il terzo pulsante del pulsante "..." accanto a "Sfoglia:"). È possibile vedere che Windows.Media.Ocr è disponibile per l'uso.

Nota: Quanto segue funziona solo con VS 2015 e Windows 10. Anche questo VS 2015 deve essere aggiornato per Universal Windows Platform (UWP). Controlla this per un OCR di esempio.

Spero che questo ti aiuti. Aggiornamento È stato importato nel mio riferimento ma non riesce a caricare però. Spero che fornisca un inizio per le persone. Grazie!.


Sono riuscito a far funzionare l'API OCR UWP sull'app desktop usando uwpdesktop NuGet.

Installa-pacchetto uwpdesktop

È quindi possibile effettuare chiamate alle API UWP.





microsoft-ocr