LEADTOOLS使用教程:支票讀取和處理
LEADTOOLS的文檔圖像工具包系列包含了一個(gè)健壯的Check Scanning and Processing SDK,它廣泛應(yīng)用于各行各業(yè)的應(yīng)用程序中,包括銀行業(yè)、保險(xiǎn)業(yè)和零售業(yè)。
簡(jiǎn)介
盡管信用卡和數(shù)字錢(qián)包試圖取代它,但是支票依然是支付方式和金融交易中非常普遍和實(shí)用的方式。消費(fèi)者和企業(yè)依然依賴(lài)傳統(tǒng)的紙質(zhì)金融交易,但這并不意味技術(shù)無(wú)法簡(jiǎn)化存儲(chǔ),提高客戶(hù)滿(mǎn)意度。許多ATM現(xiàn)在可以接受支票并自動(dòng)讀取它的值,同時(shí)有一部分機(jī)構(gòu)推出了在智能手機(jī)或平板上直接存款的應(yīng)用程序,無(wú)需去銀行或使用ATM。金融機(jī)構(gòu)是如何實(shí)現(xiàn)這些功能的呢?這會(huì)給不是金融行業(yè)的其他業(yè)務(wù)帶來(lái)什么好處呢?
LEADTOOLS的文檔圖像工具包系列包含了一個(gè)健壯的Check Scanning and Processing SDK,它廣泛應(yīng)用于各行各業(yè)的應(yīng)用程序中,包括銀行業(yè)、保險(xiǎn)業(yè)和零售業(yè)。它結(jié)合了高級(jí)磁性墨水字符識(shí)別(MICR)和光學(xué)字符識(shí)別(OCR),可以快速和準(zhǔn)確提取掃描儀或移動(dòng)電子攝像頭捕捉的圖像中的每一個(gè)相關(guān)字段和數(shù)據(jù)。高級(jí)圖像處理算法如抗扭斜和透視校正提高了低質(zhì)量圖像的識(shí)別準(zhǔn)確率。此外,LEADTOOLS包括各種跨平臺(tái)的編程接口,允許開(kāi)發(fā)者創(chuàng)建iOS、Android和Windows Phone設(shè)備上的本地應(yīng)用。
除了金融部門(mén),Check Scanning SDK可以實(shí)現(xiàn)獨(dú)一無(wú)二的解決方案,如基于平板電腦的銷(xiāo)售亭,接受支票為付款方式。此外,任何接受支票的業(yè)務(wù)可以使用LEADTOOLS的支票掃描和圖像處理功能保護(hù)客戶(hù),減少圖像上的敏感信息。
使用LEADTOOLS支票閱讀器
LEADTOOLS支票掃描和處理技術(shù)背后的主力是BankCheckReader類(lèi)。這個(gè)高級(jí)對(duì)象封裝了整個(gè)過(guò)程,只需幾行代碼就能從支票中讀取數(shù)據(jù)。設(shè)置BankCheckReader時(shí),只需給它一個(gè)OCR引擎實(shí)例,一切就OK了。
// 創(chuàng)建支票閱讀器 BankCheckReader checkReader = new BankCheckReader(); // 通過(guò)支票閱讀器創(chuàng)建和分配OCR引擎 IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false); ocrEngine.Startup(null, null, null, null); checkReader.OcrEngine = ocrEngine;
一旦初始化了BankCheckReader,它的ProcessImage方法就會(huì)使用OCR引擎查找每個(gè)字段。由于支票是半結(jié)構(gòu)化的表單,因此一些字符如“支付”、“日期”、“數(shù)量”等會(huì)出現(xiàn)在大多數(shù)文檔的相同位置。當(dāng)它識(shí)別出這些標(biāo)題后,LEADTOOLS會(huì)檢查每個(gè)標(biāo)題附近的圖像,準(zhǔn)確提取字段內(nèi)的信息。
當(dāng)處理時(shí),每個(gè)字段的值和邊界矩形會(huì)被添加到BankCheckField對(duì)象的字典中。一旦完成,就可以枚舉BankCheckReader.Results成員顯示你的業(yè)務(wù)邏輯。如下圖所示,結(jié)果會(huì)顯示在DataGridView中,同時(shí)還有一個(gè)單擊處理程序,使用邊界矩形可以繪制一個(gè)高亮注釋?zhuān)崛∽侄沃抵械牟眉艉头糯髨D像。
// 加載并處理圖像 RasterImage rasterImage = rasterCodecs.Load(fileName); checkReader.ProcessImage(rasterImage); // 通過(guò)BankCheckFields循環(huán),顯示結(jié)果 foreach (var item in checkReader.Results) { DataGridViewRow row = new DataGridViewRow(); row.CreateCells(dataGridView1, item.Key, item.Value.Text); row.Tag = item.Value; dataGridView1.Rows.Add(row); }
針對(duì)移動(dòng)設(shè)備的專(zhuān)業(yè)圖像處理:抗扭斜角度
在自動(dòng)化支票掃描的需求中,手機(jī)是一個(gè)主要驅(qū)動(dòng)力。然而,由于低DPI圖像、較差的照明和角度,獲取高質(zhì)量的圖像很難。我們可以添加十字準(zhǔn)線和矩形框幫助用戶(hù)獲取更好的圖像,但是LEADTOOLS更深入了一步,考慮了更多類(lèi)似的問(wèn)題。
使用PerspectiveDeskewCommand,開(kāi)發(fā)者可以開(kāi)發(fā)更加用戶(hù)友好和準(zhǔn)確的應(yīng)用程序,為用戶(hù)群提供了更大的靈活性。使用平板電腦或手機(jī)拍照時(shí),大多數(shù)照片的拍攝是有角度的,如下圖所示:
左上角是最理想的情況,圖片非常端正。然而一般情況下拍攝的圖像都是扭斜的。下面的圖像更糟,這個(gè)圖像的拍攝角度接近二十度,且沒(méi)有角。使用兩行代碼,LEADTOOLS就可以自動(dòng)校正所有的問(wèn)題,同時(shí)還刪除了背景。
PerspectiveDeskewCommand cmd = new PerspectiveDeskewCommand(); cmd.Run(rasterImageViewer1.Image);
其他使用和注意事項(xiàng)
除了銀行的機(jī)打支票,BankCheckReader還可以處理個(gè)人支票。個(gè)人支票的字段和位置一般都是相同的,但是手寫(xiě)文本和個(gè)性化的設(shè)計(jì)提高了識(shí)別難度。在這種情況下,擁有一個(gè)綜合的文檔圖像工具包非常重要。LEADTOOLS擁有一個(gè)廣泛的文檔清理和圖像擴(kuò)展算法集合,可以去除背景,為OCR提供一個(gè)具有更高對(duì)比度的文本區(qū)域。
此外,授權(quán)的簽名字段也很棘手。在大多數(shù)情況下不需要這個(gè)值,但是驗(yàn)證簽名也很必要。我們?cè)贐ankCheckField中提供了邊界矩形,在剪切的圖像上使用BlankPageDetectorCommand就可以確定是否已簽名。
在這兩種情況中,大多數(shù)處理都可以自動(dòng)化或簡(jiǎn)化,外加一些人工驗(yàn)證。我們不是手動(dòng)輸入所有數(shù)據(jù),只有丟失字段或置信度以下的結(jié)果需要驗(yàn)證和修正。例如,當(dāng)實(shí)現(xiàn)移動(dòng)存款時(shí),每一個(gè)機(jī)打字段和MICR字符串都會(huì)被自動(dòng)檢索,但是用戶(hù)可能需要輸入或驗(yàn)證金額。當(dāng)然可以創(chuàng)建更有效的Proof Operator應(yīng)用程序,你可以使用邊界矩形、圖像處理和查看器控件自動(dòng)放大需要的字段,如金額和簽名。
總結(jié)
支票可能會(huì)在當(dāng)今的市場(chǎng)上慢慢消失,但是類(lèi)似于LEADTOOLS Check Scanning SDK的文檔圖像開(kāi)發(fā)包可以讓顧客感到愉快,讓他們體會(huì)到與移動(dòng)數(shù)字方式一樣的速度和便捷。LEADTOOLS快速準(zhǔn)備的MICR和OCR引擎、圖像處理和跨平臺(tái)的開(kāi)發(fā)庫(kù)為銀行業(yè)、保險(xiǎn)機(jī)構(gòu)及更現(xiàn)代的銷(xiāo)售點(diǎn)提供了廣泛的發(fā)展機(jī)會(huì)。
本文轉(zhuǎn)自葡萄城控件產(chǎn)品博客
購(gòu)買(mǎi)最新正版授權(quán)!"咨詢(xún)?cè)诰€客服"
慧都年終盛典火爆開(kāi)啟,一年僅一次的最強(qiáng)促銷(xiāo),破冰鉅惠不容錯(cuò)過(guò)??!優(yōu)惠詳情點(diǎn)擊查看>>