銀行卡號識別(二) 再預處理

2021-09-02 13:10:40 字數 1032 閱讀 6047

上回書說道,我們對銀行卡進行了一系列的預處理後,得到了下面的結果:

銀行卡下半部分嚴重影響到了檢測的效果,所以在進行機器學習前,我們還需要做一點處理,把下半部分的雜訊給消除掉。

思路:首先,針對農行卡顏色的特點(目前暫時只討論農行卡)上半部分顏色相對較淺,下半部分顏色較深,而銀行卡號屬深色,所以往往會出現上圖所示的---

下半部分大面積雜訊,上半部分可能沒有或者有細微的少量雜訊的現象,故該圖具有一定的普遍性。

如上圖所示,實際上有效的檢測區域就是上圖紅線之間的數字部分,其餘部分均無效,於是乎,我們可以這樣實現:

遍歷整張二值圖,統計每行的有效畫素(黑色),若該行有效畫素個數高於閾值則表示該行開始是有效區域,若該行有效畫素個數低於閾值則表示該行無影象或者是雜訊;檢測到有效區域後開始,即找到了上面那條紅線後,我們開始找下面那條紅線的位置,若該行有效畫素個數低於閾值,則表示檢測到了無效區域,即檢測到了下面的紅線------

如此一來我們便得到了有效區域的高度,我們將所有的無效區域清除即可。

關鍵**實現:

iplimage

*filter(

iplimage

*imgsrc)

if(state == 0)

//還未到有效行

}else

if(state == 1)

} }

for(int

y = 0; y 

imgsrc

->height; y++)

}return

imgsrc;

}

結果:

預處理到此完畢

機器學習下回分解。

openCV銀行卡號識別

銀行卡的識別與車牌識別都是類似的,有了opencv方便了很多,許多函式都不要自己動手去寫。include stdafx.h include cv.h include highgui.h include cxcore.h int main int argc,char argv int tempcoun...

關於銀行卡號識別

絕大部分的銀行卡號遵循luhn演算法,luhn演算法簡述如下 luhn是著名的校驗和演算法也叫模10演算法,主要應用於解決銀行卡號,社保號等重要資訊傳輸出錯問題。先來解釋下演算法原理,校驗和型別的演算法,一般是id 校驗號,校驗號和id號的每位相關,如果出錯,通過某種運算能檢測出這種改動。借用維基百...

vue js銀行卡號處理

1 在專案中新建utils.js檔案 2 寫入 保留前後四位 中間每4個 會有乙個空格 6212 0222 param 傳入資料 const bankcard value g,1 return value 只顯示後四位 0222 param 傳入資料 const onlyfourbank value...