原創(chuàng)|使用教程|編輯:龔雪|2015-07-27 10:10:56.000|閱讀 539 次
概述:由于處理能力和存儲空間的制約,移動設(shè)備上的文字識別(OCR)一直是一個很大的挑戰(zhàn)。LEADTOOLS正在使用HTML5/JavaScript圖像查看器控件和RESTful Web服務(wù)改變這一切。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
LEADTOOLS提供了屢獲獎項(xiàng)的文字識別OCR開發(fā)包。使用全新的HTML5查看器和RESTful Web服務(wù),你可以創(chuàng)建一個令人難以置信的識別應(yīng)用程序,它能夠運(yùn)行在任意的臺式電腦、平板電腦或移動設(shè)備上。無需犧牲移動設(shè)備的速度和功能,開發(fā)者現(xiàn)在可以享受到強(qiáng)大桌面應(yīng)用程序擁有的所有好處。由于應(yīng)用程序本質(zhì)上是跨平臺的,因此程序員可以節(jié)省很多時間以及測試的成本,在更新和維護(hù)應(yīng)用程序時擁有一個更平和的心態(tài)。
· 用于跨平臺圖像查看的HTML5/JavaScript Viewer控件。
· 支持HTML5,可以運(yùn)行在任何臺式機(jī)、平板電腦或移動設(shè)備上的瀏覽器。
· 支持鼠標(biāo)和多點(diǎn)觸控(手勢)輸入。
· 交互模式包括:
a. 平移
b. 縮放
c. 區(qū)域縮放
d. 以點(diǎn)為中心縮放
e. 放大鏡
f. 合攏分開手指進(jìn)行縮放
g. 回彈效果
· 基于物理和邏輯單元顯示圖像。
· 圖像操作內(nèi)置以下動作:
a. 旋轉(zhuǎn)
b. 翻轉(zhuǎn)
c. 縮放
· 本地化的圖像注釋和標(biāo)記。
· 包含源碼,易于定制和品牌化。
· 擴(kuò)展LEADTOOLS RESTful Web服務(wù),添加高級功能,如擴(kuò)展后文件格式支持(TIFF、PDF、DOC、DICOM等),OCR和條碼。
· 快速、準(zhǔn)確、多線程的OCR文字識別引擎,用于桌面應(yīng)用程序或高性能的服務(wù)器環(huán)境。
· 整頁和區(qū)域OCR。
· 支持廣泛的語言和字符集,包括拉丁文、斯拉夫字母、東亞語言和阿拉伯語。
· 強(qiáng)大的文檔圖像清理和預(yù)處理功能
· 從任意顏色、灰度或黑白圖像中提取文本。
· 使用LEADTOOLS Cloud SDK輕松創(chuàng)建靈活的、強(qiáng)大的和高效的分布式OCR應(yīng)用程序。
包含 HTML5 & OCR文字識別技術(shù)的SDK產(chǎn)品
·
·
這個例子我們使用到HTML5 Image Viewer控件,展示了如何調(diào)用OCR RESTful web服務(wù)。文章中的示例并沒有包含所有代碼。
LEADTOOLS OCR RESTful Web 服務(wù)是將OCR功能添加到任意應(yīng)用程序中的簡單方法,無需下載龐大的語言識別庫和可執(zhí)行程序。它只需要一組簡單的參數(shù)(原始圖像和識別區(qū)域),并將結(jié)果以容易解析的JSON結(jié)構(gòu)返回。
在這個示例中,我們?yōu)槟故玖巳绾问褂脀eb服務(wù)執(zhí)行兩種類別的識別:部分的或整頁的。第一種通過使用查看器內(nèi)置的rubber band事件選擇一塊小區(qū)域完成。使用鼠標(biāo)單擊拖動或手指觸摸屏幕滑動,用戶可以在圖像中選擇一個矩形,觸發(fā)事件然后將它們的坐標(biāo)傳遞給后臺的web Service。
一旦服務(wù)按照onReadyStateChanged事件處理完成,你就可以使用JSON解析響應(yīng),根據(jù)應(yīng)用程序的需要顯示或使用識別出的文本。在下面的例子中,我們會在一個警告框中顯示文字。
_selectRecognizeArea_RubberBandCompleted$1: function HTML5DemosLibrary__ocrDemo$ _selectRecognizeArea_RubberBandCompleted$1(sender, e) { // 獲取選中的區(qū)域,將它作為OCR文字識別的一個區(qū)域 var searchArea = Leadtools.LeadRectD.fromLTRB(e.get_point1().get_x(), e.get_point1().get_y(), e.get_point2().get_x(), e.get_point2().get_y()); var visibleRect = _viewer.imageControlRectangle(true); searchArea.intersect(visibleRect); searchArea = _viewer.convertRect(Leadtools.Controls.CoordinateType.control, Leadtools.Controls.CoordinateType.image, searchArea); if (searchArea.get_width() > 3 && searchArea.get_height() > 3) { this._recognize$1(searchArea); } }, _recognize$1: function HTML5DemosLibrary__ocrDemo$_recognize$1(searchArea) { // 當(dāng)?shù)却龝r,顯示正在加載的圖片 this.beginOperation(); // 創(chuàng)建請求 var rest = this.buildServiceUrl('ocr.svc'); rest += '/GetText?uri='; rest += _viewer.get_imageUrl(); var imageSize = _viewer.get_imageSize(); rest += '&width='; rest += parseInt(imageSize.get_width()); rest += '&height='; rest += parseInt(imageSize.get_height()); if (!searchArea.get_isEmpty()) { // 沒有選擇,則識別整個頁面 rest += '&left='; rest += parseInt(searchArea.get_left()); rest += '&top='; rest += parseInt(searchArea.get_top()); rest += '&right='; rest += parseInt(searchArea.get_right()); rest += '&bottom='; rest += parseInt(searchArea.get_bottom()); } // 創(chuàng)建請求和事件句柄 var request = new XMLHttpRequest(); var _this = this; var readyStateChanged = function() { if (request.readyState === 4) { if (request.status === 200) { var results = null; if (request.responseText != null && request.responseText.length > 0) { results = JSON.parse(request.responseText); } else { alert('No text was found in the specified area, please select another area that contains text and try again.'); } request.onreadystatechange = null; request = null; _this.endOperation(false); if (results != null) { alert (results); } } else { _this.showRequestError(request); } } }; // 發(fā)送請求 request.onreadystatechange = readyStateChanged; request.open('GET', rest, true); request.send(); },
你可能注意到了如果沒有給識別函數(shù)傳遞矩形,它會為整個圖像創(chuàng)建一個矩形,然后調(diào)用web服務(wù)。因此程序員需要做的只是創(chuàng)建一個簡單的按鈕事件處理器完成整個頁面的OCR。
var recognizeButton = document.getElementById('recognizeButton'); recognizeButton.addEventListener('click', function(e) { // 發(fā)送一個空區(qū)域,識別整個圖像 _this._recognize$1(Leadtools.LeadRectD.get_empty()); }, false);
LEADTOOLS為開發(fā)者提供了世界一流的穩(wěn)定圖像庫。易用的高級編程接口使業(yè)務(wù)關(guān)鍵型應(yīng)用程序的快速開發(fā)變?yōu)榭赡堋?/p>
HTML5和OCR RESTful Web服務(wù)是LEADTOOLS諸多功能中的一個。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn