Halcon編程實驗-(4)車牌號數字+字母的識別【目的:OCR識別的應用】

程序流程

1.圖像採集,確定車牌區域
在這裏插入圖片描述
2.圖像矯正,截取車牌區域
在這裏插入圖片描述
3.車牌號碼提取
在這裏插入圖片描述
4.車牌號識別
在這裏插入圖片描述
5.車牌號顯示
在這裏插入圖片描述

本次實驗重點知識:OCR識別的應用

環境

一張含有車牌號的清晰無遮擋照片
原圖:在這裏插入圖片描述

相關代碼:

dev_update_off ()
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
// 1.圖像採集部分
read_image (Image, 'C:/Users/ShineZhang/Desktop/車牌後.jpg')
decompose3 (Image, Image1, Image2, Image3) //對圖像進行rgb顏色分解
trans_from_rgb (Image1, Image2, Image3, ImageResult1, ImageResult2, ImageResult3, 'hsv') //rgb轉化爲hsv,觀察最適合分量爲ImageResult2
threshold (ImageResult2, Regions, 63, 255)
opening_rectangle1 (Regions, RegionOpening, 3, 3)
fill_up (RegionOpening, RegionFillUp)
connection (RegionFillUp, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 320091, 379328)
shape_trans (SelectedRegions, RegionTrans, 'rectangle2') //變換區域形狀,rectangle2:最小外接矩形
//2. 圖像矯正部分
orientation_region (RegionTrans, Phi) //區域方向計算,得到弧度Phi
area_center (RegionTrans, Area, Row, Column)//獲得區域座標,面積
vector_angle_to_rigid (Row, Column, rad(180)-Phi, Row, Column,0 , HomMat2D)//生成旋轉矩形,Phi>0 , [rad(180)-Phi]防止旋轉後圖像反轉
affine_trans_image (Image, ImageAffineTrans, HomMat2D, 'constant', 'false')//旋轉操作
reduce_domain (ImageAffineTrans, RegionTrans, ImageReduced)//截取車牌區域操作
//3. 車牌號碼提取部分
invert_image (ImageReduced, ImageInvert) //圖像反轉,只能識別亮背景,暗目標
rgb1_to_gray (ImageInvert, GrayImage)
threshold (GrayImage, Regions1, 15, 128)
*opening_rectangle1 (Regions1, RegionOpening1, 3, 3)
connection (Regions1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 9301.62, 15394.7)
//4.車牌號識別部分
sort_region (SelectedRegions1, SortedRegions, 'character', 'true', 'row') //連通域排序操作
read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle) //讀取識別庫
do_ocr_multi_class_mlp (SortedRegions, ImageInvert, OCRHandle, Class, Confidence)//爲根據給定區域字符和
//OCR分級器OCRHandle的灰度圖像值,而給定的每個字符計,算出最好的類,將類返回到Class中,且將類的置信度返回到
//Confidence中。
//5.顯示結果
dev_display (Image)
dev_display (SortedRegions)
for i := 1 to |Class| by 1
disp_message (WindowHandle,Class[i-1], 'image', Row+200 , -800+Column+ i*200, 'blue', 'true')   
endfor


實驗效果

結果如圖,本次實驗未涉及漢字識別,故車牌號只有0-9,A-Z
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章