- dev_display (ImageReduced)
- rgb1_to_gray (ImageReduced, GrayImage1)
- threshold (GrayImage1, Regions1, 191, 241)
- dilation_circle (Regions1, RegionDilation1, 13)
- dev_display (RegionDilation1)
- connection (RegionDilation1, ConnectedRegions1)
- *注:一定先输入膨胀后带不同连通域的region
- intersection (ConnectedRegions1, Regions1, RegionIntersection1)
- *按第一点排序
- sort_region (RegionIntersection1, SortedRegions, 'character', 'true', 'column')
- *计算连通域个数
- count_obj (SortedRegions, Number)
- *for循环编号
- *区域、图像、xld索引数组都是从1开始,而字符索引从0开始,所以下面是word[i-1]
- for i:=1 to Number by 1
- select_obj (SortedRegions, SingleWord, i)
- endfor
- *形成trf文件,字符区域和字符关联
- words:=['数','学']
- TrainFile:='C://Users/Public/Documents/MVTec/HALCON-12.0/zyt/ocr字符训练/√单字符多个连通域/word0.trf'
- for i:=1 to Number by 1
- select_obj (SortedRegions, SingleWord, i)
- *write_ocr
- * 当前连通域 转正后的图像 对应文字 保存路径
- append_ocr_trainf (SingleWord, ImageAffinTrans,words[i-1], 'word0')
-
- endfor
- FontFile:='C://Users/Public/Documents/MVTec/HALCON-12.0/zyt/ocr字符训练/√单字符多个连通域/word0.omc'
- * 读文件路径 文件名字 文件个数
- read_ocr_trainf_names (TrainFile, CharacterNames, CharacterCount)
- Numhidden:=20
- *1创建神经网络分类器,被分割字符的宽高 特征 读取的文件(上面的CharacterNames) 句柄
- create_ocr_class_mlp (10, 30, 'constant', 'default', CharacterNames, 80, 'none', 10, 42, OCRHandle)
- *2训练分类器 输入句柄和文件路径进行训练
- trainf_ocr_class_mlp (OCRHandle, TrainFile, 200, 1, 0.01, Error, ErrorLog)
- *3保存omc文件 写的路径
- write_ocr_class_mlp (OCRHandle, FontFile)
- *4清楚句柄
- clear_ocr_class_mlp (OCRHandle)
- read_ocr_class_mlp (FontFile, OCRHandle1)
- do_ocr_multi_class_mlp (SingleWord, ImageAffinTrans, OCRHandle1, Class, Confidence)
复制代码 这是抠图之后的代码,“数”字并没有被识别
|