首页 > 其他 > 详细

OCR之engraved.hdev

时间:2020-08-12 12:12:54      阅读:64      评论:0      收藏:0      [点我收藏+]

* OCR使用例程
* Example program for using the OCR
*
* 第0步,准备工作
* Step0: Preparation
*指定用来读取序列号的字体
* Specify the name of the font to use for reading the serial number.
*最简单的是用训练好的OCR类来识别
* It is easiest to use the pre-trained font Industrial_0-9A-Z_NoRej.
*如果已经运行过这个程序,你就直接用训练好的字体
* If you have run the program engravedt.hdev in this directory, you
* can activate the second line to use the font trained with this program.
*定义字体名称
FontName := ‘Industrial_0-9A-Z_NoRej‘
* FontName := ‘engraved‘
*关闭窗体更新
dev_update_window (‘off‘)
* 第一步,进行分割
* 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 ()
*计算灰度范围
gray_range_rect (Image, ImageResult, 7, 7)
*反转图像
invert_image (ImageResult, ImageInvert)
*与之分割
threshold (ImageResult, Region, 128, 255)
*联通区域
connection (Region, ConnectedRegions)
*选择面积1000到99999的区域
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)
*在右下角显示‘Press F5 to continue’这个信息
disp_continue_message (WindowHandle, ‘black‘, ‘true‘)
stop ()
* 第二部,读取
* Step2: Reading
*设置区域形状为矩形
dev_set_shape (‘rectangle1‘)
*显示图像
dev_display (Image)
*显示排列的区域
dev_display (SortedRegions)
*把排列的区域变换成矩形形状
shape_trans (SortedRegions, RegionTrans, ‘rectangle1‘)
*求取区域面积和中心
area_center (RegionTrans, Area, Row, Column)
*获取区域数量
MeanRow := mean(Row)
count_obj (SortedRegions, Number)
*读取训练好的OCR文件到句柄
read_ocr_class_mlp (FontName, OCRHandle)
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
*清除句柄,释放内存
clear_ocr_class_mlp (OCRHandle)

OCR之engraved.hdev

原文:https://www.cnblogs.com/HomeSapiens/p/13489782.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!