案例-文字識別

案例三:文字識別

漢字與字符的識別區別:無法使用halcon內置的分類結果,需要自己訓練然後分類。
程序流程:採集圖片->預處理(縮減灰度值、濾波、形態學處理)->矯正位置->膨脹、區域劃分、求交集->篩選文字->添加訓練字符->訓練->保存->讀取->識別字符

程序代碼:

*1.讀取圖片
dev_close_window()
dev_open_window(0, 0, -1, -1, 'black', WindowHandle)
dev_open_file_dialog('read_image', 'default', 'default', Selection)
read_image (Image,Selection)
mean_image (Image,ImageMean, 5, 5)
rgb1_to_gray(ImageMean, GrayImage)
invert_image(GrayImage, ImageInvert)
*形態增強
scale_image(ImageInvert, ImageScaled, 5.20408, -364)
*2.二值化
threshold(ImageScaled, Regions, 249, 255)
*3.形態畫
closing_circle(Regions, RegionClosing,8)
closing_rectangle1(RegionClosing, RegionClosing1, 2,25)
*4.鄰域劃分
connection(RegionClosing1, ConnectedRegions)
*5.求交集
intersection(ConnectedRegions, Regions, RegionIntersection)
*6.篩選文字
select_shape(RegionIntersection, SelectedRegions, 'area', 'and', 1176.22, 9115.56)
text:=['本','公','司','提','示','吸','煙','有','害','健','康','請','勿','在','禁','場','所']
sort_region(SelectedRegions, SortedRegions, 'character', 'true', 'row')
for Index := 1 to 15 by 1
    select_obj (SortedRegions, ObjectSelected,
Index)
    if(Index==1)
	write_ocr_trainf (ObjectSelected,ImageScaled, text[Index-1], 'train_ocr')
    else
	 append_ocr_trainf (ObjectSelected,ImageScaled, text[Index-1], 'train_ocr')
    endif
endfor
select_obj (SortedRegions, ObjectSelected,17)
append_ocr_trainf (ObjectSelected,ImageScaled, text[16-1], 'train_ocr')
select_obj (SortedRegions, ObjectSelected,18)
append_ocr_trainf (ObjectSelected,ImageScaled, text[17-1], 'train_ocr')
*創建樣本
create_ocr_class_svm(8, 10, 'constant', 'default', text, 'rbf', 0.02, 0.05, 'one-versus-one',
'normalization', 10, OCRHandle)
*訓練樣本
trainf_ocr_class_svm(OCRHandle, 'C:/Users/robot/Desktop/train_ocr.trf', 0.001, 'default')
*保存樣本
write_ocr_class_svm(OCRHandle, 'C:/Users/robot/Desktop/1.osc')
*讀取訓練
read_ocr_class_svm('C:/Users/robot/Desktop/1.osc', OCRHandle1)
*識別字符
do_ocr_multi_class_svm(SortedRegions, ImageScaled, OCRHandle1, Class)
disp_message(WindowHandle, Class, 'window', 0, 0, 'black', 'true')

實驗結果:

在這裏插入圖片描述圖3

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