彩票走势图

如何使用Dynamsoft条码SDK读取非标准一维条码

翻译|使用教程|编辑:杨鹏连|2020-07-03 11:35:42.097|阅读 212 次

概述:在本文中,我将以Code39为例,演示如何使用Dynamsoft Barcode Reader SDK解码非标准一维条形码。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者SharePoint。这个TWAIN控件还支持上传和处理本地图像。

点击下载Dynamic Web TWAIN试用版

起始和终止字符被定义为线性条形码(一维条形码)标准的一部分。但是,您可能会遇到一些非标准的一维条形码符号,其中开始和结束字符有所更改。在本文中,我将以Code39为例,演示如何使用Dynamsoft Barcode Reader SDK解码非标准一维条形码。

开发环境

  • Python 3.x
Python条码SDK安装

Dynamsoft条形码阅读器SDK仅支持Python3.x。

pip install dbr
非标准一维条形码识别

为了进行比较,我准备了三个Code39图像,它们的起始和终止字符不同。

标准代码39符号(*)

非标准Code39符号体系(+)

非标准Code39符号体系(-)

以下是用于解码标准一维条形码图像的代码段:

from dbr import *
 
license_key = "LICENSE-KEY" # 
//www.dynamsoft.com/CustomerPortal/Portal/Triallicense.aspx
reader = BarcodeReader()
reader.init_license(license_key)
try:
    text_results = reader.decode_file(filename)
    if text_results != None:
        for text_result in text_results:
            print('Barcode Format:')
            print(text_result.barcode_format_string)
            print('')
            print('Barcode Text:')
            print(text_result.barcode_text)
            print('')
            print('Localization Points:')
            print(text_result.localization_result.localization_points)
            print('------------------------------------------------')
            print('')
except BarcodeReaderError as bre:
    print(bre)
在运行代码之前,您需要获得免费的试用许可证。

如果您使用非标准的1D条形码符号符号运行代码,则不会有结果。根据在线文档,非标准条形码在EnumBarcodeFormat_2中定义为扩展格式。

éžæ ‡å‡†æ¡å½¢ç æ–‡æ¡£

因此,您需要对上面的代码进行一些更改:

print(text_result.barcode_format_string_2)

另外,您必须设置与条形码类型相关的开始和结束字符。一种简单的方法是加载JSON格式的参数模板文件:

{
  "ImageParameter": {
    "BarcodeFormatIds_2": [ "BF2_NONSTANDARD_BARCODE" ],
    "FormatSpecificationNameArray": [ "FormatSpecification1" ],
    "DeblurLevel": 9,
    "Description": "",
    "ExpectedBarcodesCount": 0,
    "LocalizationModes": [
      {
        "Mode": "LM_CONNECTED_BLOCKS"
      },
      {
        "Mode": "LM_SCAN_DIRECTLY",
        "ScanStride": 0
      },
      {
        "Mode": "LM_STATISTICS"
      },
      {
        "Mode": "LM_LINES"
      }
    ],
    "Name": "Test",
    "Timeout": 1000000
  },
  "FormatSpecification": {
    "Name": "FormatSpecification1",
    "BarcodeFormatIds_2": [ "BF2_NONSTANDARD_BARCODE" ],
    "StandardFormat": "BF_CODE_39",
    "HeadModuleRatio": "131113131",
    "TailModuleRatio": "131113131"
  },
  "Version": "3.0"
}

对于非标准条形码,您只需要修改以下部分:

"StandardFormat": "BF_CODE_39",
"HeadModuleRatio": "131113131",
"TailModuleRatio": "131113131"
  • StandardFormat:条形码符号
  • HeadModuleRatio:起始字符
  • TailModuleRatio:停止符
通过引用Code39字符表,“ 131113131”代表“ +”,“ 131111313”代表“ -”。

现在,您可以创建一个自定义模板文件并将其加载到Python代码中:

json_file = None
 
if special_character == '+':
    json_file = r"template_plus.json"
 
if special_character == '-':
    json_file = r"template_minus.json"
 
if json_file == None:
    return
 
error = reader.init_runtime_settings_with_file(json_file)
if error[0] != EnumErrorCode.DBR_OK:
    print(error[1])
运行我的Python代码以读取标准和非标准Code39条形码:
éžæ ‡å‡†ä¸€ç»´æ¡å½¢ç è¯†åˆ«

如果您对将网络摄像头捕获集成到PHP应用程序中有任何疑问,请告诉我们。


想要购买Dynamic Web TWAIN正版授权,或了解更多产品信息请点击


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP