字符集与图片
链接:https://pan.baidu.com/s/1z0i1kWpV1Rwsdpjtfso_GQ
提取码:9t3y
导入训练好的字符集
字符集路径
C:\Program Files\MVTec\HALCON-18.11-Progress\ocr
图片路径
C:\Users\Public\Documents\MVTec\HALCON-18.11-Progress\examples\images
字符识别过程
1、加载字符集
FontName := './Industrial_0-9A-Z_NoRej.omc'
read_ocr_class_mlp (FontName, OCRHandle)
2、字符分割
具体问题具体分析
3、字符识别
* 挑选连通域
select_obj (SortedRegions, ObjectSelected, I)
* 识别字符 (连通域, 图片, OCR句柄,识别个数, 识别字符,置信度)
do_ocr_single_class_mlp (ObjectSelected, ImageInvert, OCRHandle, 1, Class, Confidence)
****1、加载识别字符集**********************
FontName := './Industrial_0-9A-Z_NoRej.omc'
read_ocr_class_mlp (FontName, OCRHandle)
* FontName := 'engraved'
dev_update_window ('off')
*
****2、加载图片**********************
read_image (Image, './engraved.png')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
dev_display (Image)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
*
****3、字符分割**********************
* 灰度图-矩形区域卷积
gray_range_rect (Image, ImageResult, 7, 7)
* 图像取反
invert_image (ImageResult, ImageInvert)
* 二值化
threshold (ImageResult, Region, 128, 255)
* 连通域分析
connection (Region, ConnectedRegions)
* 连通域筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999)
* 连通域排序
sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'column')
** 显示筛选排序后的连通域(分割好的字符)
dev_set_colored (6)
dev_set_draw ('margin')
dev_set_shape ('original')
dev_set_line_width (2)
dev_display (ImageResult)
dev_display (SortedRegions)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
*
****4、获取字符外接矩形与坐标(为了显示)**********************
dev_set_shape ('rectangle1')
dev_display (Image)
dev_display (SortedRegions)
* 获取字符(连通域)外接正矩形
shape_trans (SortedRegions, RegionTrans, 'rectangle1')
* 获取字符中心坐标
area_center (RegionTrans, Area, Row, Column)
MeanRow := mean(Row)
****5、读取字符**********************
count_obj (SortedRegions, Number)
for I := 1 to Number by 1
* 挑选连通域
select_obj (SortedRegions, ObjectSelected, I)
* 识别字符 (连通域, 图片, OCR句柄,识别个数, 识别字符,置信度)
do_ocr_single_class_mlp (ObjectSelected, ImageInvert, OCRHandle, 1, Class, Confidence)
* 显示识别结果
disp_message (WindowHandle, Class, 'image', MeanRow - 80, Column[I - 1] - 10, 'yellow', 'false')
endfor