作为开发条形码识别SDK的开发人员,提升准确率与解码速度一直是我们追求的第一原则。而当我们通过调整算法来优化识别结果时,终端用户也可以通过调整图像分辨率,设置合适的解码区域,以及避免一些不必要的环境因素来达到最终结果的优化。如果想了解更多的参数设置,您可以参阅这篇文章 how to improve barcode recognition accuracy when using an application.
本文将着重来讲一讲开发人员在面对一些有缺陷的条形码时应该如何利用我们Dynamsoft Barcode Reader SDK 来提升您产品的解码准确率与速度。

常见的不可读的条形码

不论什么行业,你或多或少会遇到至少一种下面的不可读条形码场景:

  • 非平面
  • 弯曲
  • 损坏
  • 反光
  • 低饱和度
  • 过暗
  • 多码
  • 有阴影
    在这些特定的场景中,我们通过调整一些参数,可以提高解码的速率。下面我们将介绍相关的参数,通过调节他们的值来做更有效的码区定位以及图片预处理,最终来达到成功解码的目的。但你需要谨记的是,当你想达到最高的准确率的同时,解码耗时也会相应的增加。

AntiDamgeLevel
这个参数是指需要用多少个定位算法来定位有破损的码区。如果您的样片中的码区有污点,或者被笔划过等损坏的情况,您可以设置AntiDamgeLevel的值为9来最大化解码速率。

ExpectedBarcodesCount
这个参数的默认值为0,这会使我们的SDK去找到至少一个条形码。如果您想通过我们的算法找到尽可能多的条形码,您可以将此参数设置到一个您预期的值(在您知道这张样片中的条形码个数的情况下);或者您也可以设置一个较大的值如0X7FFFFFFF。

DeblurLevel

如果您的样片有点模糊,您也可以通过设置此参数到最大值(9)来进行抗模糊处理。请注意,此参数值越高,相应的处理时间也会增加。

GrayEqualizationSensitivity
此参数是用来设置我们算法读于是否采取灰度均衡化的阈值设置。越高的值,我们的算法读于灰度均衡化越敏感。如果您的样片的对比度较低,以至于条形码与图片背景很难区分,请将此参数的值设为9。然而,有时候这样做也会让我们SDK在解高对比度的条形码的表现上略打折扣。所以请提前判断您的样片的对比度需不需要用到此参数。


MaxDimOfFullImageAsBarcodeZone

如果您的图集中的条形码占到了整张图的四分之三,那么您可以设置此参数到一个相对较打的值来将整张图作为条形码来解码。将此参数的值设置大于图片尺寸的值来开启”FullImageAsBarcodeZone”模式。通过这样的设置,可以使识别结果更准确。

PDFRasterDPI
如果您用我们的DecodeFile 方法解PDF中的条形码,我们的SDK会将PDF文件首先转换成图片,然后进行条形码识别。为了保证pdf文件里的条形码可读,我们可以把此参数的解析率设置到至少300dpi。越高的值会得到越准确的结果。

RegionPredetectionMode

如果您的条形码相对于整个图片来说比较小,我们建议您设置此参数为”RPM_Enable”来加速码区的定位以及提升识别准确率。

BinarizationBlockSize
条形码识别中所指的Block size是指临近像素点间的大小,用来计算一个像素点的阈值。设置此参数指为7倍module size的值可以帮助获得更高质量的二值化图片。

ScaleDownThreshold
此参数主要用来优化识别速度。需要注意的是,此参数在针对一些大图小码的场景格外有效。

需要更多帮助么?

如果您在解码过程中遇到任何问题。请发送相关图集到support@dynamsoft.com,我们会尽可能得优化相关参数来解出其中的条形码。
想了解更多关于Dynamsoft Barcode Reader SDK的信息,请下载我们的试用版本。

如何读出破损的条形码相关推荐

  1. dNet图像处理组件学习总结

    关于.NET下开源及商业图像处理(PSD)组件 http://www.cnblogs.com/Leo_wl/archive/2013/03/21/2973299.html [原创].NET开源压缩组件 ...

  2. 几种图像处理库的研究

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 几种图像 ...

  3. Science:基于微生物条形码系统的高分辨率物源追踪技术

    文章标题:Barcoded microbial system for high-resolution object provenance 发表期刊:Science 发表时间:2020.6 第一作者:Q ...

  4. 【转】SAP 条形码

    原文链接 使用系统生成的条形码,事务代码:SE73 正常的排列;将扫描由左到右. 旋转对齐将从上到下扫描90度 倒立定线将扫描所180度从右到左 底部对齐将从底部到顶部270度扫描 但在实际应用中,条 ...

  5. 教你看懂Code128条形码

    http://www.tiaoma100.com/doc/3852 Code128码分成三类,即128A.128B.128C.它们的区别就是对应的字符表不一样. 那么Code128码到底怎么读呢?请看 ...

  6. 【水晶报表】中如何打印条形码?

    关于在Crystal Report中使用Barcode,On-line Help的说明如下: 有关如何在 Crystal 报表中使用条形码的信息,请访问 Azalea 站点,网址为: http://w ...

  7. 条形码识别(1)——基础知识

    条形码识别(1)--基础知识 标签: 机器视觉 条形码识别 Python 1.序 马上就要放寒假了,老师那边貌似也没有什么任务,这一个礼拜不能闲着,思索着做一点东西练练手,看书和实践结合起来才是最有效 ...

  8. 如何看懂Code128条形码

    如何看懂Code128条形码 1.条形码种类很多,常见的大概有二十多种码制,其中包括: Code39码(标准39码).Codabar码(库德巴码).Code25码(标准25码).ITF25码(交叉25 ...

  9. 【条形码识别】二维条形码识别【含GUI Matlab源码 607期】

    ⛄一.二维条形码识别简介 采用数字图像处理技术对二维条码进行识别, 是二维条形码识别中较常用的方法, 它在处理污损的条形码方面有光电识别方法无法比拟的优势.另外图像式识别方法对识别角度的要求没有光电识 ...

最新文章

  1. 笔记JavaScript基本概念
  2. 企业应用程序部署在iOS 7.1上不起作用
  3. Javascript 变量、函数的声明
  4. c语言静态图片做成动态效果,如何使静态图片做成动态效果?怎么让静态图片动起来...
  5. java异常标记_java异常机制
  6. 又是一年毕业高峰期,分享下我的2年工作经验
  7. android java 指针异常处理,Android自定义抛出异常的方法详解
  8. 带命名空间的XML的dom4j应用转
  9. 中文代码示例之Vuejs入门教程(一)
  10. FPGA串口传图sobel边缘检测
  11. MATLAB代码:基于纳什谈判理论的风–光–氢多主体能源系统合作运行方法 关键词:合作博弈 纳什谈判 风–光–氢系统 综合能源
  12. c语言c11标准 下载,【整理】C语言的各种版本:C89,AMD1,C99,C11
  13. MATLAB求函数零点与极值
  14. 在线流程图和思维导图开发技术详解(一)
  15. 非负数的和与个数c语言编程,C语言习题中,编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和...
  16. centos开启443端口
  17. 兼容Android11的手机拍照上传图片和相册选择图片功能(可直接用)
  18. 养生怪杰:魏伟的养生之道
  19. hive后台启动_将Hive Thrift server 添加到服务后台运行 | 学步园
  20. Android系统版本与代号

热门文章

  1. 20162303石亚鑫预备作业02
  2. linux mkfs 源码,源码安装mkfs.jffs2
  3. 酒店一次性用品品名英语大全,酒店一次性用品用英语怎么说?
  4. 一个仿微信朋友圈的图片查看器,使用超级简单!
  5. C#清除缓存、清除IE临时文件缓存cookies的方法
  6. 16G的U盘 4G的压缩
  7. 数组的创建以及常见的方法
  8. GPU和显卡是什么关系?GPU会取代CPU吗?
  9. 亲测有用,windows11忘记开机密码修改密码
  10. 鸿蒙报名多久能用试纸测出来,怀孕多久可以用试纸测出来? 这几点不注意, 会影响准确率...