halcon OCR识别

训练分类器 

       训练分类器可分为以下几步:1、分割字符;2、调用append_ocr_trainf函数将字符加入到训练集中;3、使用create_ocr_class_mlp函数创建分类器;4、调用trainf_ocr_class_mlp函数来训练分类器;5、最后使用write_ocr_class_mlp函数来将分类器写入到文件(.omc格式)中

分类器识别

     识别可分为以下几步:1、对需要识别的图像进行基本的处理;2、使用read_ocr_class_mlp函数来获取分类器;3、最后使用do_ocr_multi_class_mlp函数来进行识别。

dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
gen_empty_obj (EmptyObject)
read_image (Image, 'D:/_Study/train_ocr/test1.jpg ')
rgb1_to_gray (Image, GrayImage)
for Index := 1 to 4 by 1
 disp_message (WindowHandle, '请框选单个汉字区域,右键确认:','window', 12, 12, 'yellow', 'false')

 **画个矩形
 draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
 **根据画的矩形生成对应的矩形
 gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
 *裁出来
 reduce_domain (GrayImage, Rectangle, ImageReduced1)
 *阈值
 threshold (ImageReduced1, Region1, 128, 255)
 *开运算,我看这步省了也行
 opening_circle (Region1, RegionOpening, 1.5)
 *准备接收所有提取的字符区域
 concat_obj (EmptyObject, RegionOpening, EmptyObject)
endfor

words:=['测','试','文','字']

*排个序
sort_region (EmptyObject, SortedRegions1, 'character', 'true', 'row')

for Index1:=1 to 4 by 1
 select_obj (SortedRegions1, ObjectSelected1, Index1)
 *(1)将待训练样本添加到训练集中
 append_ocr_trainf (ObjectSelected1, Image, words[Index1-1], 'D:/_Study/train_ocr/2.trf')
 read_ocr_trainf_names ('D:/_Study/train_ocr/2.trf', CharacterNames, CharacterCount)
endfor

*read_ocr_trainf_names ('D:/_Study/train_ocr/2.trf', CharacterNames, CharacterCount)
*(2)创建mlp分类器
create_ocr_class_mlp (8, 10, 'constant', 'default', words, 80, 'none', 10, 42, OCRHandle)
*(3)使用样本训练mlp分类器
trainf_ocr_class_mlp (OCRHandle, 'D:/_Study/train_ocr/2.trf', 200, 1, 0.01, Error, ErrorLog)
*(4)将OCR分类器写入文件
write_ocr_class_mlp (OCRHandle, 'D:/_Study/train_ocr/2.omc')

*(5)使用分类器来进行识别,先导入另一张做测试的图
read_image (Image1, 'D:/_Study/train_ocr/test2.jpg')
rgb1_to_gray (Image1, GrayImage1)
threshold (GrayImage1, Regions, 117, 255)

connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'height', 'and', 50, 99999)
sort_region (SelectedRegions, SortedRegions, 'upper_left', 'true', 'column')

*(6)开始识别   a、获取分类器;b、使用分类器分割字符
read_ocr_class_mlp ('D:/_Study/train_ocr/2.omc', OCRHandle1)
do_ocr_multi_class_mlp (SortedRegions, GrayImage1, OCRHandle1, Class, Confidence)
disp_message (WindowHandle, '识别结果:', 'image', 30, 50, 'white', 'false')

for i:=1 to 4 by 1
    disp_message (WindowHandle, Class[i-1], 'image', 30, 120+40*i, 'yellow', 'false')
endfor

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HALCON是一种计算机视觉,提供了OCR(Optical Character Recognition,光学字符识别)功能。在HALCON中,OCR识别的基本流程包括采集图像、提取字符区域、读取字句柄、进行识别、清除句柄等步骤。\[1\]HALCON提供了一组预先训练好的字体,可以用于识别各种领域的文本,包括文档、制药、工业产品甚至手写数字文本。此外,HALCON还包括了针对特定字体的预训练字体,以及基于卷积神经网络的通用字体。\[2\]在HALCON中,可以使用do_ocr_multi_class_mlp函数来读取多个字符,或者使用do_ocr_single_class_mlp函数来读取单个字符。同时,还可以使用do_ocr_word_mlp函数来进行单词的OCR识别。\[3\] #### 引用[.reference_title] - *1* [Halcon学习之OCR字符识别](https://blog.csdn.net/Mr_Four97/article/details/131161813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Halcon解决方案指南(18)OCR--字符识别](https://blog.csdn.net/IntegralforLove/article/details/83756956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值