Halcon例程之bottle.hdev

 重要的算子说明:

1、create_text_model_reader( : : Mode, OCRClassifierMLP : TextModel)

       功能:创建一个文字模型

       参数:输入:

       Mode:选择文本分割方法,可选为 'auto' 和 'manual'(手动).;如果Mode=‘auto’,则后续 find_text 将会提取任意大小的字体;如果Mode=‘manual’,则一定要在set_text_model_param中设定字体的高度和宽度。

       OCRClassifierMLP :分类器名称

        参数:输出:

        TextModel:输出新的文本模型

2、set_text_model_param( : : TextModel, GenParamName, GenParamValue : )

        功能:设置文本模型参数

        输入参数:

                TextModel:输入文本模型

                 GenParamName:设定在提取文本时需要使用的参数名字;在Mode=‘auto’和‘manual’时,分别有不同的可选参数设 置,一定要注意不要设置错了(根据Mode设置),具体可以参考Halcon算子详解。下文中的例子中的文本特点是明显比周围的宽,所以设定参数为'min_stroke_width'。 'text_line_structure'设定意义为:确定需要寻找的文本的结构以有效的提高提取的准确性。该参数为一个字符串,包含的信息为每一个字符快所蕴含的字符个数与空间。例如关于日期的一个数各式为:月,日,年;每一个块有两个字符,则改参数可以设置为‘2 2 2’,如果年这个数字块有4个字符,则该参数可以设置为‘2 2 2-4’.

                 GenParamValue:设定提取文本的参数的值

3、find_text(Image : : TextModel : TextResultID)

            功能:根据设置的文本模型在图像中找到具体的字符

            输入参数:

                     Image:需要检测的图像

                     TextModel:已经设定好的文本模型

           输出参数:

                     TextResultID:字符分割后的句柄

4、get_text_object( : Characters : TextResultID, ResultName : )

         功能:获取字符分割后的图形结果

        输出参数:

                 Characters:  字符结果

        输入参数:

                 TextResultID:分割字符后的句柄

                 ResultName:以什么方式显示字符结果。‘all_lines’:返回所有的分割结果,字符排序方式为从上到下从左到右。

FontName := 'Industrial_0-9_NoRej'
* FontName := 'bottle'
* 
* Step 1: Segmentation
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)
set_display_font (WindowID, 16, 'mono', 'true', 'false')
dev_display (Bottle)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* 
* Create Automatic Text Reader and set some parameters
create_text_model_reader ('auto', FontName, TextModel)
* The printed date has a significantly higher stroke width
set_text_model_param (TextModel, 'min_stroke_width', 5)
* The "best before" date has a particular and known structure
set_text_model_param (TextModel, 'text_line_structure', '2 2 2')
* 
* Read the "best before" date
find_text (Bottle, TextModel, TextResultID)
* 
* Display the segmentation results
get_text_object (Characters, TextResultID, 'all_lines')
dev_display (Bottle)
dev_display (Characters)
stop ()
* Display the reading results
get_text_result (TextResultID, 'class', Classes)
area_center (Characters, Area, Row, Column)
for Index := 0 to |Classes| - 1 by 1
    disp_message (WindowID, Classes[Index], 'image', 80, Column[Index] - 3, 'green', 'false')
endfor
* 
* Free memory
clear_text_result (TextResultID)
clear_text_model (TextModel)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值