点状字体的连通区域是分开的,需要将连通区域连接起来形成一个个可识别的字体。因此下面演示一种较为简单、有效还能降噪的方式
演示用图:
halcon代码:
*点状字符的识别
*针对于这张图像使用了Industrial_0-9_Rej.omc库
create_text_model_reader ('auto', 'Industrial_0-9_Rej.omc', TextModel)
*读图
read_image (Image, 'D:/Halcon-WorkSpaces/Test/Image/test7.PNG')
rgb1_to_gray (Image, GrayImage)
*这里利用到均值滤波的特性将点状字体连接到一起
mean_image (GrayImage, ImageMean, 9, 9)
*识别
find_text (ImageMean, TextModel, TextResultID)
get_text_object (Characters, TextResultID, 'all_lines')
get_text_result (TextResultID, 'class', Classes)
*显示
Classs:=''
for Index := 0 to |Classes|-1 by 1
Classs:=Classs+Classes[Index]
endfor
disp_message (3600, '识别结果:'+Classs, 'window', 0, 0, 'red', 'true')
效果: