C++ Halcon识别条形码示例

//初始化模型
CreateBarCodeModel(HTuple(), HTuple(), &hv_BarCodeHandle);
//设置最小对象面积大小
SetBarCodeParam(hv_BarCodeHandle, "element_size_min", 3200);
//设置校验开启
SetBarCodeParam(hv_BarCodeHandle, "check_char", "present");
//设置只识别一个
SetBarCodeParam(hv_BarCodeHandle, "stop_after_result_num", 1);
// Local iconic variables
HObject  ho_Image, ho_SymbolRegions;

// Local control variables
HTuple  hv_DecodedDataStrings;
HTuple code_Types;

code_Types[0] = "Code 128";
code_Types[1] = "Code 39";
FindBarCode(ho_Image, &ho_SymbolRegions, hv_BarCodeHandle, code_Types, &hv_DecodedDataStrings);
long codeLen = hv_DecodedDataStrings.Length();
    if (codeLen >0) {
        for (int i = 0;i < codeLen;i++) {
            HString str = hv_DecodedDataStrings[i].S();
            char* code = const_cast<char*>(str.Text());
            //正则校验
            std::regex code_reg("^[1-9]\d{10,14}$");
            bool ret = std::regex_match(code, code_reg);
            if (ret) {

                qDebug(u8"%s", code);

                break;
            }
        }
    }
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/yamboo/p/13889588.html