字元辨识.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
字元辨识

前言: 字元辨識(Optical Character Rrcognition)是在電腦興起後,為了加速文字資料處理的速度,而興起的一種技術。自從教育普及、知識爆炸後,書籍、報紙、雜誌…等等以文字形式出現的資料一天比一天增加,我們不禁煩惱要如何記錄這些日以遽增的資料。 資料量的大小與其記錄的方式有很密切的關係。舉個例子來講,我們今天如果要記錄一個英文字元「A」。假設我們是用一個「char」的記憶體來記錄它,只需要1個byte的記憶體大小就好;但是如果我們用點矩陣圖形的方式來記錄它(假設在300dpi的解析度下記錄一個1cm×1cm大小的圖形)就會需要至少218bytes的記憶體大小。兩者差別是非常大的! 儘管電腦的技術一直在進步,但是面對這無窮盡的資料量,能盡量節省資料記憶空間是最重要的課題之一了。早在十七世紀初,儘管那時候還沒有電腦,就已經有OCR的觀念跟技術了。在十七世紀出的OCR簡單的來說是一種為方便視障人士閱讀文字的發明。一直發展至今算一算OCR也有將近兩百年的歷史了,但是OCR還是一直不被人滿足,一直在進步。從能剛開始只能辨識印刷體到現今連手寫字都能辨識,OCR的發展還在持續進步當中。 程式介紹: 欲辨識字元 本程式的內容是在做英文字元辨識,利用最基本的Match法來做字元辨識。所謂的Match即是將字元圖形中的一點一點取出來與Sample中的字元圖形做比對,比對結果最符合的就是這個字元。舉例來說,如果今天有個字元圖形如左下: 這個字元圖形是一個40×40的點矩陣圖形檔。對人類來說上面的字元只要一看就知道是A,但是對電腦來說,我們要怎樣叫它來判斷上面的圖形是什麼字元呢?我們如果說已經知道了一個圖檔如右上所示,也是一個40×40的圖檔,並且我們知道長的跟這個圖檔一樣的字元就叫做「A」。於是,我們就可以把左邊跟右邊的圖檔中的點一一取出比對,如果兩個圖檔中的點都一樣的話,那我們就知道左邊的圖檔代表的字元就是「A」。 這樣做是最簡單的字元辨識方式,但是也是最不好的。實際上在比對兩個字元的點時不可能會有完全符合的情況發生。因為我們在對文字資料擷取影像時會有許多雜訊發生,並且文字的字型一旦改變後,用這種方式電腦還是只會一點一點的去比對,判斷出正確字元的可能性就會大幅度的降低。 因為本程式是依照Match的方式作OCR的,所以會有下列限制: 只能判斷英文字母:因為資料庫的受限,本程式只能判斷52個英文字母(大寫加小寫)。資料庫要改變需改寫source。 字元的大小需固定:因為比對方式的關係,字元大小必須固定。但是因為資料庫是可以自建的,尚可以補足這個缺點。 沒有對雜訊做處理:本程式假設一切字元都是完美的,並且字元的背景都沒有任何雜訊存在。如果有雜訊存在可能會影響字元切割跟判別。不過字元切割值是可調整的,可降低雜訊對字元切割值造成的影響。 沒有對任何旋轉做處理:本程式不考慮欲判別影像有任何旋轉之情形發生,程式中沒有任何對將圖形轉正之規畫。 如果符合以上四點要求,以Match方式辨識其辨識率是非常高的。 程式流程: 程式的流程如下: 對影像作水平分割:找出影像中的行資料 對行資料影像作垂直分割:找出每一行資料中的個別字元 讀入資料庫:將字元影像的Criteria讀入 比對字元:一一比對字元並輸出結果 茲將細節說明: 分割影像: 一個字元資料影像原始檔如下: 空白 首先我們對這個影像作水平分割,將它每一行分開來,再個別處理。這時可以注意到行與行之間有距離存在,在這段距離之間沒有點存在。因此我們可利用圖形水平方向的字元累積量來決定行的分割先的位置。因此我們能將原圖形切割如下: 如上圖所示,及可以將一行行切開,接著再進行個別字元的分離。進行個別字元分離時需要將每一行個別處理,我們以第一行做為例子: 一樣的我們可以利用圖形垂直方向的字元累積量來切割字元,因此圖形會被割為: 如此及完成個別字元的分割。 字元資料庫: 本程式建立的字元資料庫事先以一個三維的資料矩陣構成的字元資料點陣圖。資料庫首先先記錄一個char[52][30][30] 大小的矩陣。其中52代表著52個大小寫字母,而每個字母以30×30個點的大小記錄,所以總共會有52×30×30個butes的資料量。記錄完點陣資料後,接著是字元個別點數的資料,即是記錄個別字元在30×30=900個點中有多少個點是存在的,其他的則是BackGround。這些資料是要用來判斷 Best Match 用的,每一個字元的資料用一個int記錄,所以總共有52×2個bytes的資料量。 本程式提供自建資料庫,以適應各種不同的字型所需。準備資料庫取樣的格式如下:準備一個具有52個元素的影像,此影像共分為兩行,第一行是26個大寫字母,從A排到Z:第二行是2

文档评论(0)

dlmus + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档