Halcon教程之条形码识别

条形码或条码(barcode)是由一组按一定编码规则排列的条,空符号,用以表示一定的字符,数字及符号组成的信息。条码系统是由条码符号设计,制作及扫描阅读组成的自动识别系 统。 条码卡分为一维码和二维码两种。一维码比较常用,如日常商品外包装上的条码就是一维码。它的信息存储量小,仅能存储一个代号,使用时通过这个代号调 取计算机网络中的数据。二维码是近几年发展起来的,它能在有限的空间内存储更多的信息,包括文字、图象、指纹、签名等,并可脱离计算机使用。

条码种类很多,常见的大概有二十多种码制,其中包括: 
Code39 码(标准39码)、Codabar码(库德巴码)、Code25码(标准25码)、ITF25码(交叉25码)、Matrix25码(矩阵25码)、 UPC-A码、UPC-E码、EAN-13码(EAN-13国际商品条码)、EAN-8码(EAN-8国际商品条码)、中国邮政码(矩阵25码的一种变 体)、Code-B码、MSI码、Code11码、Code93码、ISBN码、ISSN码、Code128码(Code128码,包括EAN128 码)、Code39EMS(EMS专用的39码)等一维条码和PDF417等二维条码。


实例3_1:ITF25条形码识别

ITF25条形码图片:

机器视觉机器视觉机器视觉机器视觉

halcon代码:

* 读取ITF25码
 
create_bar_code_model ([], [], BarCodeHandle)
dev_close_window ()
dev_open_window (0, 0, 120, 300, 'black', WindowHandle)
 
read_image (Image,'D:/MyFile/halcon/条形码识别/ITF25_1.jpg')
get_image_size (Image, Width, Height)
dev_set_window_extents (0, 0, Width-1, Height-1)
 
set_bar_code_param (BarCodeHandle,'check_char','present')
find_bar_code (Image, SymbolRegions, BarCodeHandle, '2/5 Interleaved', DecodedDataStrings)
disp_message (WindowHandle, DecodedDataStrings, 'window', 18, 12, 'black', 'false')
 
clear_bar_code_model (BarCodeHandle)

实例3_2:Code25条形码识别

Code25条形码图片:

机器视觉机器视觉

halcon代码:

* 读取Code25码
create_bar_code_model ([], [], BarCodeHandle)
dev_close_window ()
dev_open_window (0, 0, 120, 300, 'black', WindowHandle)
 
dev_set_draw ('margin')
dev_set_line_width (3)
 
read_image (Image, 'D:/MyFile/halcon/条形码识别/Code25_1.jpg')
get_image_size (Image, Width, Height)
dev_set_window_extents (0, 0, Width-1, Height-1)
dev_display (Image)
 
set_bar_code_param (BarCodeHandle, 'check_char','present')
find_bar_code (Image, SymbolRegions, BarCodeHandle, '2/5 Industrial', DecodedDataStrings)
disp_message (WindowHandle, DecodedDataStrings, 'window', 18, 12, 'black', 'false')
 
clear_bar_code_model (BarCodeHandle)