Halcon一维码读取并获取条码的坐标和角度方法

描述

FBAR

读取一张图像

read_image (Image, 'barcode/ean13/ean1305')

*获取图像的大小

get_image_size (Image, Width, Height)

*关闭已经打开的窗口

dev_close_window ()

*打开一个新窗口

dev_open_window (0, 0, Width, Height, 'black', WindowHandle)

*显示图像

dev_display (Image)

*设置输出对象的颜色

dev_set_color ('green')

*设置区域的填充方式

dev_set_draw ('margin')

*设置输出对象的线宽

dev_set_line_width (3)

*设置字体信息:字体大小:14,字体:mono,粗体,斜体

set_display_font (WindowHandle, 14, 'mono', 'true', 'false')

*创建一个条码读取模版,同时设定条形和空格的最小宽度

create_bar_code_model ('element_size_min', 1.5, BarCodeHandle)

for Rot := 0 to 360 by 30

    *旋转图像

    rotate_image (Image, ImageRotate, Rot, 'weighted')

    *显示图像

    dev_display (ImageRotate)

    *获取图像大小

    get_image_size (ImageRotate, Width, Height)

    *改变当前激活窗口的大小和位置

    dev_set_window_extents (0, 0, Width, Height)

    *在图像上读取出条码数据和条码区域

    find_bar_code (ImageRotate, SymbolRegions, BarCodeHandle, 'EAN-13', DecodedDataStrings)

    *显示条码区域

    dev_display (SymbolRegions)

    *获取条码的方向:条码方向与图像水平轴之间的夹角

    get_bar_code_result (BarCodeHandle, 'all', 'orientation', Orientation)

    *获取条码区域的面积,中心坐标

    area_center (SymbolRegions, Area, Row, Col)

    *创建一个十字箭头的轮廓

    gen_arrow_contour_xld (Arrow, Row + sin(rad(Orientation)) * 70, Col - cos(rad(Orientation)) * 70, Row - sin(rad(Orientation)) * 70, Col + cos(rad(Orientation)) * 70, 25, 25)

    *显示十字箭头的轮廓

    dev_display (Arrow)

    *在窗口上显示条码数据

    disp_message (WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'true')

    stop()

endfor

*删除条码模版并清除分配的内存

clear_bar_code_model (BarCodeHandle)






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分