您的位置:首页 > 其它

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

2017-09-25 20:17 1016 查看
* 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上的“
4000
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: