資源簡介
算法思想來自于網上資源,先使用圖像邊緣和車牌顏色定位車牌,再識別字符。算法代碼只有500行,測試中發現,車牌定位算法的參數受圖像分辨率,色偏,車距影響,有的車型識別效果有待提高。
代碼片段和文件信息
import?cv2
import?numpy?as?np
from?numpy.linalg?import?norm
import?sys
import?os
import?json
SZ?=?20??????????#訓練圖片長寬
MAX_WIDTH?=?1000?#原始圖片最大寬度
Min_Area?=?2000??#車牌區域允許最大面積
PROVINCE_START?=?1000
#讀取圖片文件
def?imreadex(filename):
return?cv2.imdecode(np.fromfile(filename?dtype=np.uint8)?cv2.IMREAD_COLOR)
def?point_limit(point):
if?point[0]?0:
point[0]?=?0
if?point[1]?0:
point[1]?=?0
#根據設定的閾值和圖片直方圖,找出波峰,用于分隔字符
def?find_waves(threshold?histogram):
up_point?=?-1#上升點
is_peak?=?False
if?histogram[0]?>?threshold:
up_point?=?0
is_peak?=?True
wave_peaks?=?[]
for?ix?in?enumerate(histogram):
if?is_peak?and?x? if?i?-?up_point?>?2:
is_peak?=?False
wave_peaks.append((up_point?i))
elif?not?is_peak?and?x?>=?threshold:
is_peak?=?True
up_point?=?i
if?is_peak?and?up_point?!=?-1?and?i?-?up_point?>?4:
wave_peaks.append((up_point?i))
return?wave_peaks
#根據找出的波峰,分隔圖片,從而得到逐個字符圖片
def?seperate_card(img?waves):
part_cards?=?[]
for?wave?in?waves:
part_cards.append(img[:?wave[0]:wave[1]])
return?part_cards
#來自opencv的sample,用于svm訓練
def?deskew(img):
m?=?cv2.moments(img)
if?abs(m[‘mu02‘])?1e-2:
return?img.copy()
skew?=?m[‘mu11‘]/m[‘mu02‘]
M?=?np.float32([[1?skew?-0.5*SZ*skew]?[0?1?0]])
img?=?cv2.warpAffine(img?M?(SZ?SZ)?flags=cv2.WARP_INVERSE_MAP?|?cv2.INTER_LINEAR)
return?img
#來自opencv的sample,用于svm訓練
def?preprocess_hog(digits):
samples?=?[]
for?img?in?digits:
gx?=?cv2.Sobel(img?cv2.CV_32F?1?0)
gy?=?cv2.Sobel(img?cv2.CV_32F?0?1)
mag?ang?=?cv2.cartToPolar(gx?gy)
bin_n?=?16
bin?=?np.int32(bin_n*ang/(2*np.pi))
bin_cells?=?bin[:10:10]?bin[10::10]?bin[:1010:]?bin[10:10:]
mag_cells?=?mag[:10:10]?mag[10::10]?mag[:1010:]?mag[10:10:]
hists?=?[np.bincount(b.ravel()?m.ravel()?bin_n)?for?b?m?in?zip(bin_cells?mag_cells)]
hist?=?np.hstack(hists)
#?transform?to?Hellinger?kernel
eps?=?1e-7
hist?/=?hist.sum()?+?eps
hist?=?np.sqrt(hist)
hist?/=?norm(hist)?+?eps
samples.append(hist)
return?np.float32(samples)
#不能保證包括所有省份
provinces?=?[
“zh_cuan“?“川“
“zh_e“?“鄂“
“zh_gan“?“贛“
“zh_gan1“?“甘“
“zh_gui“?“貴“
“zh_gui1“?“桂“
“zh_hei“?“黑“
“zh_hu“?“滬“
“zh_ji“?“冀“
“zh_jin“?“津“
“zh_jing“?“京“
“zh_jl“?“吉“
“zh_liao“?“遼“
“zh_lu“?“魯“
“zh_meng“?“蒙“
“zh_min“?“閩“
“zh_ning“?“寧“
“zh_qing“?“靑“
“zh_qiong“?“瓊“
“zh_shan“?“陜“
“zh_su“?“蘇“
“zh_sx“?“晉“
“zh_wan“?“皖“
“zh_xiang“?“湘“
“zh_xin“?“新“
“zh_yu“?“豫“
“zh_yu1“?“渝“
“zh_yue“?“粵“
“zh_yun“?“云“
“zh_zang“?“藏“
“zh_zhe“?“浙“
]
class?StatModel(object):
def?load(self?fn):
self.model?=?self.model.load(fn)??
def?save(self?fn):
self.model.save(fn)
class?SVM(StatModel):
def?__init__(self?C?=?1?gamma?=?0.5):
self.model?=?cv2.ml.SVM_create()
self.model.setGamma(gamma)
self.model.setC(C)
self.model.setKernel(cv2.ml.SVM_RBF)
self.model.setT
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.......??????1157??2018-05-26?22:39??車牌識別\.gitignore
????.......???????262??2018-05-26?22:39??車牌識別\config.js
????.......??????1060??2018-05-26?22:39??車牌識別\LICENSE
????.......?????18184??2018-05-26?22:39??車牌識別\predict.py
????.......??????1804??2018-05-26?22:39??車牌識別\README.md
????.......????513442??2018-05-26?22:39??車牌識別\Screenshots\3.png
????.......????335454??2018-05-26?22:39??車牌識別\Screenshots\5.png
????.......??????4640??2018-05-26?22:39??車牌識別\surface.py
????.......???4595678??2018-05-26?22:39??車牌識別\svm.dat
????.......???3645216??2018-05-26?22:39??車牌識別\svmchinese.dat
????.......???4543569??2018-05-26?22:39??車牌識別\test\1.jpg
????.......???2718121??2018-05-26?22:39??車牌識別\test\2.jpg
????.......?????62588??2018-05-26?22:39??車牌識別\test\cAA662F.jpg
????.......?????27089??2018-05-26?22:39??車牌識別\test\car3.jpg
????.......?????25090??2018-05-26?22:39??車牌識別\test\car4.jpg
????.......?????28604??2018-05-26?22:39??車牌識別\test\car5.jpg
????.......?????27744??2018-05-26?22:39??車牌識別\test\car7.jpg
????.......?????24073??2018-05-26?22:39??車牌識別\test\lLD9016.jpg
????.......?????52515??2018-05-26?22:39??車牌識別\test\wA87271.jpg
????.......????116063??2018-05-26?22:39??車牌識別\test\wATH859.jpg
????.......????141788??2018-05-26?22:39??車牌識別\test\wAUB816.jpg
????.......???3336217??2018-05-26?22:39??車牌識別\train\chars2.7z
????.......???1099009??2018-05-26?22:39??車牌識別\train\charsChinese.7z
?????目錄??????????0??2018-05-26?22:39??車牌識別\Screenshots
?????目錄??????????0??2018-05-26?22:39??車牌識別\test
?????目錄??????????0??2018-05-26?22:39??車牌識別\train
?????目錄??????????0??2018-05-26?22:39??車牌識別
-----------?---------??----------?-----??----
?????????????21319367????????????????????27
............此處省略0個文件信息
評論
共有 條評論