OnlineOCR.Net ile OCR İşlemleri ve API Kullanımı

  • 16.47.2016
  • tayyipyetis
  • .Net Framework

ocrMerhaba arkadaşlar bu makalede sırf meraktan araştırdığım bir konuyu sizinle paylaşacağım. OCR (Optical Character Recognition, Optik Karakter Tanıma) olayıyla bundan iki sene önce bir freelance iş sayesinde karşılaştım müşterim benden bir site üzerinde otomatik sorgular yapmamı istemişti fakat site her sorgu başına bir Captcha istiyordu. neyse ki bu captcha oldukça basit ve okunaklıydı dolayısıyla  ufak bir OCR algoritmasıyla kırmayı başarmıştım. her 10 sorgudan 7-8'ini bilebiliyordu.  Açıkçası o günden sonra aktif olarak OCR ile ilgilenmedim fakat internette karşıma böyle bir site çıktı ve ben de bir gün lazım olur diye test edip ufak bir makale hazırlamaya karar verdim. onlineocr.net sitesinin nasıl bir hizmet verdiğini öğrenmek için tasarladığım bu örnekte üzerinde net olarak okunabilen yazı bulunan bir resim dosyasını Onlineocr'nin verdiği web service'e göndererek geriye belirli formatlarda bir çıktı alabiliyorsunuz. tabii öncelikle site üzerinde bir hesap açmanız ve bir API Key almanız gerekiyor. Ücretli hizmet vermesine rağmen günlük 25 adet sorgu göndermenize izin veriyor. ayrıca web arayüzü ile de görüntü okutabiliyorsunuz. fiyat listesini belki ciddi ciddi kullanmak isteyen olur diye makalenin sonunda paylaştım fakat şunu da söyleyeyim ki bana oldukça pahalı geldi. Elbette .Net ile kullanılmak için tasarlanmış bir çok OCR kütüphanesi mevcut bunlar ile internet bağlantısı olmadan ya da herhangi bir siteye bağlı kalmadan da işlem yapabilirsiniz eğer bir gün ihtiyacım olursa onlardan birini yine burada paylaşacağım.

Sorgu göndermeniz için iki yöntem sunuluyor SOAP ve REST API. Ben bu örnekte SOAP kullandım. http://www.ocrwebservice.com/api/soapguide adresinde api dökümanları yer alıyor detaylı inceleyebilirsiniz. API bizden 4 adet parametre istiyor. Kullanıcı adı, api key, resim dosyasının byte datası ve ayarlama için kullanılan settings sınıfı. Visual Studio üzerinden Add Service Reference yöntemiyle www.ocrwebservice.com/services/OCRWebService.asmx adresindeki Web Service'i ekledikten sonra aşağıdaki kodları kendinize uyarlayarak çalıştırabilirsiniz. 

OCRWebService ocr = new OCRWebService();
OCRWSInputImage img = new OCRWSInputImage();
OCRWSSettings s = new OCRWSSettings();
OCRWSResponse res = new OCRWSResponse();

img.fileName = "test.jpg";
img.fileData = System.IO.File.ReadAllBytes(Server.MapPath("/test.jpg"));
OCRWS_Language[] diller = new OCRWS_Language[] { OCRWS_Language.TURKISH };
OCRWS_OutputFormat format = OCRWS_OutputFormat.TXT;
s.ocrLanguages = diller;
s.outputDocumentFormat = format;
s.createOutputDocument = true;

res = ocr.OCRWebServiceRecognize("kullaniciadi", "ApiKey", img, s);

System.IO.File.WriteAllBytes(Server.MapPath("/output.txt"), res.fileData);

Yukarıdaki örnek çalıştığında uygulama ile aynı klasörde output.txt adında bir dosya oluşturulur ve resmin üzerinde yazılar okunabildiği kadarıyla bu dosyaya yazılır.

 

 

Fiyatlandırma Seçenekleri

fiyatlandırma

Mustafa Tayyip YETİŞ
Yazılım Geliştirme Uzmanı

Yorum Yap