*******************車牌識別程式 僅供學習使用*******
**說明:此程式識別的車牌是在網上隨便找的,此程式中的二值化、形狀選擇和形態學處理的blob分析三步曲
**並不具有普遍性。因為位置、光照、車牌清潔狀態等都會對車票識別造成很大的影響。只有使用mlp/svm/cnn
**等人工智慧演算法訓練的程式,才具有比較高的普適性。
**1.採集影象
read_image (image, 'f:/7.機器視覺/halcon/c#聯合halcon開發/chepaishibie1.jpg')
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', windowhandle)
*2.車牌定位及校正
**顏色轉換
decompose3 (image, image1, image2, image3)
trans_from_rgb (image1, image1, image1, hue, saturation, intensity, 'hsv')
*二值化
threshold (intensity, regions, 0, 59)
connection (regions, connectedregions)
*形狀選擇
select_shape (connectedregions, selectedregions, 'area', 'and', 4908.26, 8944.95)
**形態學處理
union1 (selectedregions, regionunion)
dilation_rectangle1 (regionunion, regiondilation, 11, 11)
fill_up (regiondilation, regionfillup)
**角度變換
orientation_region (regionfillup, phi)
area_center (regionfillup, area, row, column)
vector_angle_to_rigid (row, column, area, row, column, area, hommat2d)
affine_trans_image (image, imageaffintrans, hommat2d, 'constant', 'false')
affine_trans_region (regionfillup, regionaffinetrans, hommat2d, 'nearest_neighbor')
*3.摳圖+字元識別
reduce_domain (imageaffintrans, regionaffinetrans, imagereduced)
rgb1_to_gray (imagereduced, grayimage)
invert_image (grayimage, imageinvert)
threshold (imageinvert, regions1, 56, 159)
connection (regions1, connectedregions1)
select_shape (connectedregions1, selectedregions1, ['area','height'], 'and', [206.42,27.248], [426.61,40.275])
**給識別出來的字串進行排序,'character'指的是按字串的形式輸出
sort_region (selectedregions1, sortedregions, 'character', 'true', 'row')
*4.字元識別
read_ocr_class_mlp ('document_0-9a-z_norej.omc', ocrhandle)
do_ocr_multi_class_mlp (sortedregions, imageinvert, ocrhandle, class, confidence)
*5.顯示
smallest_rectangle1 (sortedregions, row1, column1, row2, column2)
count_obj (sortedregions, number)
dev_display (image)
for index := 0 to |class| - 1 by 1
**每個數字的y座標一樣,x座標與列印的日期對應數字的x座標值-3
disp_message (windowhandle, class[index], 'image', 210, column2[index] - 3, 'green', 'false')
endfor
程式原圖如下:
執行結果如下:
程式開頭講過,blob分析只能適用於條件穩定且合適的情況。一旦條件發生變化,很有可能出現錯識別的情況。當然,人工智慧演算法也不是100%的準確,但是人工智慧演算法起碼可以降低開發和除錯的難度,blob分析是需要大量的打光測試和**調整才能找到暫時合適的方法。而人工智慧演算法可以一勞永逸,雖然設計演算法的時候有一定的難度,但是,一旦成功就可以很高效地移植到其它專案中。這種輕鬆不是說**量或者工作量少,而是後期的維護成本很低,非標裝置行業的人力成本和出差費用是十分昂貴的。
車牌識別程式 安卓 iOS手持機掃瞄車牌識別程式
車牌識別的程式常見的應用有pc端車牌識別 嵌入式端車牌識別 移動端手持機掃瞄車牌識別的程式,但是最近大家也肯定有聽到過android ios端的手持機掃瞄車牌識別的程式,而且發展迅猛,很多應用場景都有它的身影,例如 警務通 車輛保險 佔道停車管理 停車場管理雲停車等應用技術。手持機掃瞄車牌識別的程式...
Opencv SVM車牌識別
車牌定位演算法在車牌識別技術中占有很重要地位,乙個車牌識別系統的識別率往往取決於車牌定位的成功率及準確度。車牌定位有很多種演算法,從最簡單的來,車牌在影象中一般被認為是長方形,由於影象攝取角度不同也可能是四邊形。我們可以使用opencv中的例項 c program files opencv samp...
HyperLPR車牌識別
本文基於hyperlpr進行修改,完整 參考 hyperlpr是乙個使用深度學習針對對中文車牌識別的實現,與較為流行的開源的其他框架相比,它的檢測速度和魯棒性和多場景的適應性都要好於目前開源的框架,hyperlpr可以識別多種中文車牌包括白牌,新能源車牌,使館車牌,教練車牌,武警車牌等。使用的目標檢...