freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于opencv的銀行卡號識別設(shè)計-文庫吧

2025-01-01 22:33 本頁面


【正文】 識別系統(tǒng)實現(xiàn)后創(chuàng)建的數(shù)字模板庫。 第 2 章 圖像預(yù)處理模塊 8 8 引言 整個識別系統(tǒng)主要由圖像預(yù)處理模塊、字符分割模塊、字符定位模塊、字符識別模塊幾個 模塊組成。下面詳細(xì)介紹這幾個模塊是如何用 opencv 的函數(shù)實現(xiàn)的。以一張編號為 9559981090571602515 的銀行卡為例來介紹系統(tǒng)的整個識別過程。 圖像預(yù)處理模塊是用來進行銀行卡號識別的前期準(zhǔn)備工作的模塊。圖像處理模塊的要求就是把原始圖像處理為適合后續(xù)模塊處理要求的圖像。本系統(tǒng)的原始圖像采用 RGB圖像,系統(tǒng)的圖像處理模塊主要對原始圖像進行灰度化、二值化等處理。銀行卡原始圖像如圖 2所示。 圖 2 原始圖像 灰度化處理 圖像灰度化處理就是將指定圖像每個像素點的 RGB 三個分量通過一定的算法計算 出該像素點的灰度值,使圖像只含亮度而不含色彩信息。本程序中一開始得到的采集的銀行卡圖像是彩色圖像,其中包含了大量顏色信息,但識別卡號并不需要關(guān)心這些顏色信息,這些顏色信息反而會對銀行卡卡號的識別造成干擾并且顏色信息浪費了大量數(shù)據(jù)空間儲存。所以可以通過對原始圖像進行灰度化處理來去掉銀行卡的顏色信息,這樣有利于后續(xù)模塊的處理并且可以節(jié)約大量的系統(tǒng)的存儲空間。 一般有以下四種方法對彩色圖像進行灰度化。 9 9 1)分量法 將彩色圖像中的三分量的亮度作為三個灰度圖像灰度值,可根據(jù)需要選取一種灰度圖像。 f1(i,j)=R(i,j)f2(i,j)=G(i,j)f3(i,j)=B(i,j) 其中 fk(i,j)(k=1,2,3)為轉(zhuǎn)換后的灰度圖像在( i,j)處的灰度值。 將彩色圖像中的三分量亮度的最大值作為灰度圖的灰度值。 f(i,j)=max(R(i,j),G(i,j),B(i,j)) 將彩色圖像中的三分量亮度求平均得到一個灰度值。 f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3 根據(jù)重要性及其它指標(biāo),將三個分量以不同的權(quán)值進行加權(quán)平均。由于人眼對綠色的敏感最高,對藍 色敏感最低,因此,按下式對 RGB三分量進行加權(quán)平均能得到較合理的灰度圖像。 f(i,j)=(i,j)+(i,j)+(i,j)) 本系統(tǒng)采取的方法是調(diào)用了 opencv里灰度化函數(shù) cvCvtColor。該函數(shù)采用加權(quán)平均法,將銀行卡彩色圖像轉(zhuǎn)為灰度圖像。 對原始圖像處理得到的結(jié)果如圖 3所示。 二值化處理 10 10 在將原始圖像進行灰度化處理后,對得到的灰度圖像進行二值化處理。二值化處理就是將灰度圖像轉(zhuǎn)換為只包含黑色和白色兩種顏色的圖像,它們之間沒有其他灰度的變化。在二值圖中用 255表示白色, 0表示黑色。相對于灰度圖,二值圖可以大大壓縮數(shù)據(jù)量,并且可以大幅度簡化后續(xù)工作。 圖像二值化采用閾值分割來實現(xiàn),即以一個合適的閾值將圖像分為大于和小于閾值的兩部分像素群,對應(yīng)表示圖像中的目標(biāo)和背景,從而將目標(biāo)從背景中分離出來。選取閾值的方法有多種。迭代法所得的閾值能有效的分割圖像,區(qū)別目標(biāo)和背景的主要區(qū)域所在,但是在圖像的細(xì)微處的區(qū)分不是很好。經(jīng)典 Ostu[6]算法必須對所有的灰度值遍歷計算類間方差,再通過比較得到最大方差,因此其運算大。 Bernsen 算法 [7]實現(xiàn)速度慢,還會出現(xiàn)筆劃間斷和偽 影等現(xiàn)象。由于本文中目標(biāo)圖像和背景在灰度上有明顯差異,采用雙峰法來確定最佳分割閾值。首先根據(jù)輸入的數(shù)字圖像作出反映這幅圖像中的灰度級與出現(xiàn)這種灰度的概率之間關(guān)系的灰度直方圖。直方圖中出現(xiàn)了兩個峰值,一個處于目標(biāo)灰度區(qū),另一個處于背景灰度區(qū)。這兩個峰分別對應(yīng)目標(biāo)與背景數(shù)目較多的像素點,兩峰之間的波谷對應(yīng)邊緣附近數(shù)目較少的點。在大量實驗基礎(chǔ)上,本系統(tǒng)選取閾值為 37。然后,采用固定閾值法對圖像進行二值化處理。 將圖 3中的灰度圖進行二值化處理得到的二值圖如圖 4所示。 圖 4 二值圖 第 3 章 字符定位模塊 11 11 引言 字符分割模塊是對預(yù)處理后的圖像進行卡號字符的準(zhǔn)確準(zhǔn)確定位與分割,它是卡號識別系統(tǒng)中一個較為關(guān)鍵的模塊,銀行卡號定位與分割的準(zhǔn)確與否將直接影響系統(tǒng)的識別率。本模塊主要包括對銀行卡號的定位、卡號字符定位、卡號字符分割、卡號字符圖像歸一化處理。 銀行卡號的定位是在整張圖像中定位出卡號的位置,將其從背景圖像中分離出來,便于后面從圖像中分離出卡號字符。 銀行卡號字符定位是在已定位的銀行卡號中找到銀行卡號各字符所在位置,為后面字符分割作準(zhǔn)備。 字符分割是將銀行卡號分割成 19個單個的銀行卡號字符圖像。 圖像歸一化 是將分割成的單個的銀行卡號字符圖像規(guī)范成統(tǒng)一的大小且將銀行卡號字符放置在圖像的中心。 膨脹和腐蝕 調(diào)用膨脹函數(shù)和腐蝕函數(shù)使銀行卡卡號在 X 方向連成一整個黑色區(qū)域并消除一些二值圖中干擾黑色區(qū)域。從圖像處理角度看,二值圖像的腐蝕和膨脹就是將一個小型二值圖(結(jié)構(gòu)元素,一般為 3*3 大小,本系統(tǒng)采用 3*1大小)在一個大的二值圖上逐點移動并進行比較,根據(jù)比較的結(jié)果作出相應(yīng)處理。 膨脹算法:用 3*1 的結(jié)構(gòu)元素,掃描二值圖像的每一個像素,用結(jié)構(gòu)元素與其覆蓋的二值圖像做“與”運算,如果都為 0,結(jié)構(gòu)圖像的該像素為 0,否則 為:使二值圖像擴大一圈。 腐蝕算法:用 3*1 的結(jié)構(gòu)元素,掃描二值圖像的每一個像素,用結(jié)構(gòu)元素與其覆蓋的二值圖像做“與”運算,如果都為 1,結(jié)構(gòu)圖像的該像素為 1,否則為:使二值圖像減小一圈。 膨脹與腐蝕的處理效果就如其名字一樣,我們通過膨脹連接相近的圖像區(qū)域,通過腐蝕去除孤立細(xì)小的色塊。通過這一步,我們將所有的銀行卡卡號字符連通起來,這樣為我們接下來通過輪廓識別來得到卡號區(qū)域做準(zhǔn)備。由于字符都是橫向排列的,因此要連通這些字符我們只需進行橫向的膨脹即可。然后可以通過檢測圖片的輪廓得到卡號所處的區(qū) 域并提取出來。將圖 4的二值圖進行膨脹得到的圖像如圖 5所示。 12 12 圖 5 膨脹圖 經(jīng)過上一步操作,理論上來說銀行卡上的字符連通成一個矩形區(qū)域,我們可以發(fā)現(xiàn)出了卡號區(qū)域還有一些黑色區(qū)域,我 們可以使用腐蝕變換來消除一些。 對圖 5的圖像進行腐蝕變換消除部分較小的黑色區(qū)域。 圖 6 腐蝕圖 輪廓提取 通過輪廓提取我們可以定位卡號區(qū)域。 OpenCV 里提取目標(biāo)輪 廓的函數(shù)是 13 13 findContours,它的輸入圖像是一幅二值圖像,輸出的是每一個連通區(qū)域的輪廓點的集合: vectorvectorPoint。外層 vector 的 size 代表了圖像中輪廓的個數(shù),里面 vector 的 size 代表了輪廓上點的個數(shù)。更為準(zhǔn)確的說,經(jīng)過上面的操作,我們將原始圖片中在 X方向排列緊密的縱向邊緣區(qū)域連通成了一個矩形區(qū)域,除了卡號符合這個特點外,其他一些部分如銀行名,銀行卡標(biāo)志等可能同樣符合。因此我們可能會找到很多這樣的區(qū)域,這就需要我們進一步根據(jù)一些關(guān)于銀行卡特點的先驗知識對這些矩形進 行進一步篩選。最終,定位銀行卡卡號所在的矩形區(qū)。 矩形的篩選算法篩選效果的好壞直接決定了整個一套識別算法是否能得到一個好的結(jié)果。我設(shè)計的篩選算法主要涉及這幾個部分: (圖片高度的5%以上) (圖片寬度的 25%以上) (圖片高度的 20%~80%之間) 4.大小形狀(寬高比 5:1) 這個時候遇到了一個問題, opencv輪廓查找函數(shù)有時無法將一個輪廓完整的提取出來。如圖 7所示,這一張銀行卡提取的結(jié)果沒有全部包含卡號區(qū)域。 圖 7 檢測結(jié)果失敗圖 垂直投影 14 14 為了解決上述問題,我們將得到的輪廓在 Y方向投影,確定卡號位置。本系統(tǒng)采用的是逐像素點查找的方法對輪廓區(qū)域進行投影。對每一列,系統(tǒng)進行逐點查找,統(tǒng)計出每一列黑色像素點數(shù)目 x。在將一幅空白圖中對應(yīng)列的最下面 x個點變成 黑色的就可以得到垂直投影圖。 將得到的輪廓垂直投影結(jié)果如圖 8所示。 圖 8 垂直投影圖 通過垂直投影圖可以得到銀行卡號左右邊界,再由輪廓的上下邊界就可以得到卡號的區(qū)域。使用 cvSetReal2D函數(shù)將查找得到的區(qū)域繪制出來,如圖 9所示。 圖 9 銀行卡卡號定位圖 將提取出的卡號二值化。得到的提取圖如圖 10所示。 15 15 圖 10提取二值圖 第 4章 字符分割模塊 16 16 引言 由于文字信息在現(xiàn)今社會的廣泛應(yīng)用,計算機視覺研究的重要方向之一: 字符圖像的分割與識別技術(shù)得到了越來越多的重視,可用于生活中的許多方面,例如手寫體和印刷體文字的識別,門牌號的識別,支票上簽名的識別,工程圖紙的數(shù)字化,機器人視覺導(dǎo)航,以及各種表單、車輛牌照的識別。這些廣泛的應(yīng)用領(lǐng)域都說明字符圖像分割與識別技術(shù)有著重要的意義。 字符分割 常用的分割方法有:閾值法、區(qū)域生長法、分裂合并法、邊緣檢測法、人工神經(jīng)網(wǎng)絡(luò)法、基于模糊集理論法、分類器和聚類法等 。本系統(tǒng)字符定位分割方法是將將提取出卡號二值圖進行 Y方向膨脹腐蝕使每個字符變成一個黑塊。由于銀行卡卡號字符之間有一定距離,系統(tǒng)采用對銀行卡卡號字符垂直投影,在垂直方向上的投影值不為零的區(qū)域有字符,然后以銀行卡卡號的下邊界和左邊界的交點為起點,沿 X軸進行搜索,找到每個卡號。然后將圖像進行 X和 Y方向的投影得到圖像中字符位置。接著通過投影位置可以把字符分割出來。 將得到的二值圖在 Y方向投影,得到垂直投影圖圖 11。 圖 11 字符垂直投影圖 根據(jù)垂直投影圖進行處理,可以從銀行卡卡號中分割出單個的卡號字符圖像。 卡號的分割如圖 12所示。注意圖 12中每個字符周圍的線框就是分割的位置。 圖 12 字符分割圖 圖像歸一化 17 17 上面得到的字符圖像大小不一,位置不同,無法直接與模版字符匹配 。為了使字符圖像可以與模版匹配,必須對圖像進行歸一化處理。 圖像歸一化一般分為大小位置和筆劃粗細(xì)等歸一化。由于系統(tǒng)識別的字符是阿拉伯?dāng)?shù)字的印刷體,所以只需要進行大小和位置歸一化處理。 本文的字符圖像歸一化通過調(diào)用 opencv中 cvResize函數(shù)將得到的字符大小變成與模版字符大小一致。方便字符識別。 第 5 章 字符識別模塊 18 18 字符識別模塊主要實現(xiàn)卡號字符識別功能即將處理好的卡號字符與模版相對比,在數(shù)字模板庫中找到和待識卡號字符匹配的字符,從而完成字符的識別。銀行卡的卡 號字符都是規(guī)范的印刷單位且樣本的空間比較小,基于這些特點,本文采用模板匹配法來進行卡號識別。 將提取出的字符圖像與模版對比,即可識別出銀行卡的
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1