2013-08-16 25 views
7

Sono nuovo nel mondo della programmazione e sto provando a sviluppare un'applicazione che utilizza l'OCR. Voglio che l'app converta una singola ricevuta in testo (niente di troppo complesso).OCR su Windows Phone 8 WP8

Tuttavia, il mio problema è che sto trovando una mancanza di informazioni per OCR su WP8 e come implementarlo. Avrei pensato che fosse una funzione integrata di WP e che le informazioni sarebbero facilmente accessibili su come implementarla.

Qualcuno sa dove potrei apparire, o un semplice frammento di codice di esempio che potrei usare? Non desiderare un servizio basato su abbonamento.

+1

telefono Windows 8 non supporta qualsiasi API OCR. puoi provare qualche libreria esterna. Diamo uno sguardo a http://www.leadtools.com/sdk/windows-phone/default.htm –

+0

@SadAlAbdullah, Pls metti questo come risposta, aggiungi l'affermazione Microsoft a sostegno della tua risposta, così potremmo farla finita. – Eldho

risposta

1

Microsoft ha recentemente rilasciato la libreria OCR per Windows Runtime. Jerry Nixon ha pubblicato un video che ti guida, e c'è anche un articolo di msdn.

Jerry Nixon's Blog

MSDN

0

Puoi provare a utilizzare lo stesso servizio di OCR che utilizza la lente Bing. Se non l'hai provato: apri la fotocamera, cambia l'obiettivo con l'obiettivo bing e provalo

L'endpoint del servizio è http://ocrrest.bingvision.net/V1. Fornisce inoltre informazioni sulla posizione del testo rilevato con i relativi riquadri di delimitazione

Probabilmente alcune analisi del violinista ti aiuteranno a inviare la tua immagine in modo simile.

Ho un piccolo frammento di sotto della quale si attende l'immagine come matrice di byte

public static readonly string ocrServiceUrl = "http://ocrrest.bingvision.net/V1";   // was: "platform.bing.com/ocr/V1"; 
    public static readonly string ocrLanguage = "en"; 

    public static async Task<JsonObject> MakeOcrJSON(byte[] image) 
    { 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("{0}/Recognize/{1}", ocrServiceUrl, ocrLanguage)); 
     request.Method = "POST"; 

     using (Stream requestStream = await request.GetRequestStreamAsync()) 
     { 
      requestStream.Write(image, 0, image.Length); 
     } 

     try 
     { 
      using (HttpWebResponse response = (HttpWebResponse) (await request.GetResponseAsync())) 
      { 
       using (var responseStream = new StreamReader(response.GetResponseStream())) 
       { 
        var json = JsonObject.Parse(responseStream.ReadToEnd()); 
        return json; 
       } 
      } 
     } 
     catch (WebException we) 
     { 
      using (Stream responseStream = we.Response.GetResponseStream()) 
      { 
       DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(OcrResponse)); 
       OcrResponse ocrResponse = (OcrResponse)serializer.ReadObject(responseStream); 
       string ErrorMessage = "Unknown Error"; 
       if (ocrResponse.OcrFault.HasValue) 
       { 
        ErrorMessage = string.Format(
         "HTTP status code: {0} Message: {1}", 
         ocrResponse.OcrFault.Value.HttpStatusCode, 
         ocrResponse.OcrFault.Value.Message); 
       } 
       throw new Exception(ErrorMessage); 
      } 
     } 
    } 
Problemi correlati