目录
1、fill_up_shape(Region : RegionFillUp : Feature, Min, Max : )
2、dev_set_shape ('rectangle1')
3、dev_set_check ('~give_error')
4、delete_file (TrainingFileName)
5、dev_set_check ('give_error')
6、append_ocr_trainf(Character, Image : : Class, TrainingFile : )
9、write_ocr_class_mlp (OCRHandle, FontName)
一、程序源码分析
-
OCR字符训练,字体是被用在"bottle.hdev"示例中
1、第一步:从酒瓶上分割出字符
-
窗口显示更新关闭、关闭显示窗口、打开新的窗口(窗口大小是图像的两倍)
FontName := 'bottle' // 定义一个字符串变量FontName ,内容是bottle
dev_update_window ('off')
read_image (Bottle, 'bottle2')
get_image_size (Bottle, Width, Height)
dev_close_window ()
dev_open_window (0, 0, 2 * Width, 2 * Height, 'black', WindowID)
dev_display(Bottle)
set_display_font (WindowID, 27, 'mono', 'true', 'false')
- 预处理分割瓶身上的字符
threshold (Bottle, RawSegmentation, 0, 95)
fill_up_shape (RawSegmentation, RemovedNoise, 'area', 1, 5) // 对区域面积在1-5之间的进行孔洞填充,目的就是为了消除噪声
opening_circle (RemovedNoise, ThickStructures, 2.5)
// ThickStructures是以圆形为卷积核开运算后的图像,对其进行填充得到Solid
fill_up (ThickStructures, Solid)
// 进一步消除图像中干扰
opening_rectangle1 (Solid, Cut, 1, 7)
connection (Cut, ConnectedPatterns)
intersection (ConnectedPatterns, ThickStructures, NumberCandidates) // 将字符的原本形态恢复
select_shape (NumberCandidates, Numbers, 'area', 'and', 300, 9999)
sort_region (Numbers, FinalNumbers, 'first_point', 'true', 'column')
dev_display (Bottle)
dev_set_color ('green')
dev_set_line_width (2)
// 将文字区域以矩形形式输出
dev_set_shape ('rectangle1')
dev_set_draw ('margin')
dev_display (FinalNumbers)
-
以矩形形式显示分割出来的文本
2、第二步:训练文件生成
// 训练的内容就是上文分割出来的字符
TrainingNames := ['0', '1', '0', '8', '9', '4']
// 训练文件名称,这里会把文件放在.hdev同目录下。如果想要放在想要的地方就得这么写:TrainingFileName := C:/ + FontName &