作为开发条形码识别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的信息,请下载我们的试用版本。