halcon12条码与二维码识别

halcon12条码与二维码识别

dev_close_window ()
dev_update_off ()

* 1. 读图
read_image (Image, 'D:/txx_Work/Work_Project/8.txrx_xxxA/pics/Lxx61x392/box/r1.jpg')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)

* 绘制基础:只画边、线宽2
dev_set_draw ('margin')
dev_set_line_width (2)

* ==============================================
* 2. 一维码(先画,红色)
* ==============================================
create_bar_code_model ([], [], BarCodeHandle)
find_bar_code (Image, SymbolRegions1D, BarCodeHandle, 'Code 128', DecodedData1D)
clear_bar_code_model (BarCodeHandle)

* 每次画框前:重绘原图 → 保证干净
dev_display (Image)
dev_set_color ('red')
smallest_rectangle1 (SymbolRegions1D, Row1, Col1, Row2, Col2)
disp_rectangle1 (WindowHandle, Row1, Col1, Row2, Col2)

* ==============================================
* 3. 二维码(后画,绿色,永远在最上层)
* ==============================================
create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedData2D)
clear_data_code_2d (DataCodeHandle)

* 安全显示二维码(无对象也不报错)
count_obj (SymbolXLDs, NumQR)
if (NumQR > 0)
    dev_set_color ('green')
    dev_display (SymbolXLDs)  
    * XLD直接画框,不填充
endif

* ==============================================
* 4. 显示文字
* ==============================================
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
disp_message (WindowHandle, '一维码:' + DecodedData1D, 'window', 12, 12, 'red', 'false')
disp_message (WindowHandle, '二维码:' + DecodedData2D, 'window', 40, 12, 'green', 'false')

 

posted @ 2026-06-01 14:59  txwtech  阅读(2)  评论(0)    收藏  举报