首页 > 代码库 > Halcon学习笔记——条形码的定位与识别

Halcon学习笔记——条形码的定位与识别

   一维码的原理与结构

技术分享

       条码基本原理是利用条纹和间隔或宽窄条纹(间隔)构成二进制的”0“和”1“,反映的是某种信息。       

         一维条码数据结构,分四个区域。组成分别为静区、起始/终止符、校验符、数据符。

        一维条码的意识形态结构,分三条。

  1. 构成一维码的基本单元是模块,模块是指条码中最窄的条或空;
  2. 构成条码的条或空称为一个单元,一个单元包含多个或单个模块;
  3. 一个单元包含的模块数量由编码方式决定,即形成了不同的码制。

    一维码的定位与识别

       技术分享

 

            基本halcon工具算子,create_bar_code_model()生成模型;set_bar_code_param()设置参数;get_bar_code_object()获取中间参数;find_bar_code()条码解码定位与识别。

       在条码识别过程中,码制包括EAN码、39码和128码、93码、25码以及codabar码,码制决定了条码单元的组成形式。其中,还需要注意条码的三个重要参数,分别为条码密度(通常用模块尺寸表示);条或空的宽窄比;对比度(PCS)。

       在使用halocn工具算子时,还应注意常用的三个手法,打光;预处理以及设置参数。打光,主要是从光源部分着手;预处理,调整灰度值常用sacle_image()做点运算或直方图调整;设置参数,主要包括了模块尺寸,对比度以及阈值设置(边缘),扫描线的操控。理解一维码识别的原理与结构,按照halcon的常规执行套路并灵活运用三大手法,基本可以解决一维码的所有识别问题。

Halcon学习笔记——条形码的定位与识别