Halcon学习笔记-例程精析-Blob-Bottle

来源:互联网 发布:交互设计师软件 编辑:程序博客网 时间:2024/06/05 18:33

* bottle.hdev: Segment and read numbers on a beer bottle

* 用于读取酒瓶上的数字

FontName:='Universal_0-9_NoRej'

*Step 1:Segmentation

*分割

dev_update_window('off')

*关闭窗口刷新。如果只在图形窗口中显示选定对象,则该选项应该设置为“off”。在这种情况下,对象应该由*dev_display显示。

read_image(Bottle,'bottle2')

*read_image( : Image : FileName : )

get_image_size(Bottle,Width,Height)

dev_close_window()

dev_open_window(0,0,2*Width,2*Heigth,'black',WindowID)

*dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)

set_display_font(WindowID, 16, 'mono', 'true', 'false')    (all in)

*set_display_font( : : WindowHandle, Size, Font, Bold, Slant : )

*此过程设置当前窗口的文本字体,并具有指定的属性大小

*Font:字体的名字。“mono”、“sans”、“serif”或特定的字体名称都可以使用。“mono”将被映射到Windows上的“Courier *New”,Linux上的“Courier”,以及OS X上的“Menlo”。“sans”将被映射到Windows和OS X上的“Arial”,以及Linux上

*的“helvetica”。“serif”将被映射到Windows和OS X上的“Times New Roman”,以及Linux上的“Times”

*Bold,设置为true则为粗体

*Slant 设置为true则为斜体

dev_display(Bottle)

disp_continue_message(WindowID, 'black', 'true')

*disp_continue_message( : : WindowHandle, Color, Box : )

*这个过程显示在屏幕右下角的特定颜色中“点击”运行“继续”。

*如果参数框设置为“true”,则文本将在一个白盒中编写,这在不规则背景下是有用的。

stop()


*创建自动文本阅读器并设置一些参数


create_text_model_reader('auto',FontName, TextModel)


*create_text_model_reader( : : Mode, OCRClassifier : TextModel)(in in out)

*create_text_model_reader创建了一个TextModel,它描述了用find_text分割的文本。

*模式的参数值决定了使用哪个文本分割方法。可能的值是“auto”和“manual”。

*通常,参数模式应该设置为“auto”,因为这种模式比较稳定,需要较少的配置工作。

*打印的日期有更高的描边宽度


set_text_model_param(TextModel, 'min_stroke_windth' ,6)


*设置文本模型的参数。set_text_model_param( : : TextModel, GenParamName, GenParamValue : )

*GenParamName允许的参数值的列表不同,这取决于在使用create_text_model_reader创建文本模型时设置的模式。


set_text_model_param(TextModel, 'text_line_structure', '2 2 2 ')

find _text(Bottle, TextModel, TextResultID)


*显示分割结果

get_text_object(Characters, TextResultID, 'all_lines')(out in in)


*get_text_object( : Characters : TextResultID, ResultName : )

*get_text_object查询find_text返回的TextResultID的图标结果

*“all_lines”:返回所有分段文本行中的所有字符。


dev_display(Bottle)

dev_display(Characters)

stop()


*显示读取结果

get_text_result(TextTesultID, 'class', Classes)    (in in out)


*get_text_result( : : TextResultID, ResultName : ResultValue)

*get_text_result查询find_text返回的TextResultID的控制结果。根据find_text文本分割过程中使用的文本模型,结果名称的可能参数值不同。


area_center(Characters, Area, Row, Column)  (in out out out)


*area_center计算输入区域的区域和中心。该区域被定义为一个区域的像素个数。该中心被计算为所有像素的线或列坐标的平均值。


disp_message(WindowID, Classes, 'image', 80, Colum - 3 , 'green' , 'false')  (all in)


*disp_message( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )

*该过程显示图形窗口中的文本,在位置(行、列)上的WindowHandle


*'image' :图像坐标

*Box:

如果设置为“true”,则将文本写在一个橙色的方框内。

如果设置为“false”,则没有显示任何框。

如果设置为一个颜色字符串(例如。“白色”、“# FF00CC”等),文本是用这种颜色的盒子写的。

如果显示阴影,则可选对框控件的第二个值。可能的值是“true”、“false”或有效的颜色字符串。


*清空内存

clear_text_result(TextResultID)

clear_text_model(TextModel)

















原创粉丝点击