OCR之engravedt_hdev
2020-08-17 22:51
127 查看
- 此项目运用是训练OCR字体,给’engraved.hdev’使用
- Example program to train the characters for OCR
- The font is used in “engraved.hdev”
- 第0步:准备工作
- Step0: Preparation
*字体名称
FontName := ‘engraved’
*关闭窗体更新
dev_update_window (‘off’) - 第1步: 图像分割
- Step1: Segmentation
*读取图像
read_image (Image, ‘engraved’)
*获取图像大小
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)
*右下角显示’Press f5 to continue’这个信息
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop ()
以77掩码算子
*决定某个方形区域内的灰度值,计算方形区域内的最大最小灰度的差,并体现到每个图像点上。
*如果MaskHeight和MaskWidth是偶数,它们被变为靠近的小的奇数值,图像边缘的灰度值是呈镜像出现的。
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)
*设置显示颜色
dev_set_colored (12)
*设置填充方式
dev_set_draw (‘margin’)
*设置区域显示形状
dev_set_shape (‘rectangle1’)
*设置线宽
dev_set_line_width (2)
*设置处理后的图像
dev_display (ImageResult)
*显示选中区域
dev_display (SelectedRegions)
*右下角显示’Press f5 to continue’这个信息
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop () - 第二步:训练文件生成
- Step2: Training file generation
*字符名称
TrainingNames := [‘0’,‘3’,‘F’,‘A’,‘L’,‘D’,‘0’]
*训练文件名称
TrainingFileName := FontName + ‘.trf’
*排列区域
sort_region (SelectedRegions, SortedRegions, ‘first_point’, ‘true’, ‘column’)
*求区域的最小外接矩形
shape_trans (SortedRegions, RegionTrans, ‘rectangle1’)
*求区域的面积和中心坐标
area_center (RegionTrans, Area, Row, Column)
*平均行坐标
MeanRow := mean(Row)
*禁用报错
dev_set_check (’~give_error’)
*先删除训练文件
delete_file (TrainingFileName)
*启用报错
dev_set_check (‘give_error’)
*设置显示颜色
dev_set_color (‘yellow’)
*将字符和对应Ocr区域添加到训练文件
for I := 0 to |TrainingNames| - 1 by 1
*选择一个区域
select_obj (SortedRegions, CharaterRegions, I + 1)
*添加到训练文件
append_ocr_trainf (CharaterRegions, ImageInvert, TrainingNames[I], TrainingFileName)
*设置文字信息显示位置
set_tposition (WindowHandle, MeanRow - 80, Column[I] - 10)
*显示文字信息
write_string (WindowHandle, TrainingNames[I])
endfor - 第3步
- Step3: Training
*保留唯一字符
CharNames := uniq(sort(TrainingNames))
*创建MLP句柄
create_ocr_class_mlp (8, 10, ‘constant’, ‘default’, CharNames, 5, ‘none’, 10, 42, OCRHandle)
*训练OCR
trainf_ocr_class_mlp (OCRHandle, TrainingFileName, 200, 1, 0.01, Error, ErrorLog)
*保存训练好的OCR文件
write_ocr_class_mlp (OCRHandle, FontName)
*清除OCR句柄,释放内存
clear_ocr_class_mlp (OCRHandle)
*右下角显示’Press f5 to continue’这个信息
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop ()
*清除窗体
dev_clear_window ()
相关文章推荐
- OCR之ocr_wafer_semi_font.hdev
- ocr_cd_print_polar_trans.hdev从cd边提取字符然后识别 相关例程学习
- ocr_wafer_semi_font.hdev圆晶上semi字符提取 相关例程学习
- ocr_yogurt.hdev识别酸奶盒保质期 相关例程学习
- Tesseract-OCR 字符识别---样本训练
- python——unpack问题 ocr_recognize timeout , exception:unpack requires a string argument of length 46
- OCR项目汇总
- 在opencv3中的机器学习算法练习:对OCR进行分类
- 小白的tesseract-ocr经验
- Stanford机器学习---第十四讲.机器学习应用举例之Photo OCR
- Tesseract-OCR学习系列(三)简例
- halcon导出类---HDevWindowStack详解
- 字符识别(OCR)相关工具/库/教材/论文等资源整理
- Tesseract OCR 3.05.01 VS2015编译 及 字库训练
- 车牌识别api接口—移动端安卓、iOS系统的OCR技术
- Tesseract-OCR的简单使用与训练
- Creat_average_shape_model.hdev例程相关学习(一)
- Windows环境安装tesseract-ocr 4.00并配置环境变量
- ocrale:循环插入数据
- Tesseract-OCR的简单使用与训练