< Back
Tiny Barcode at a Distance

Decode Unreadable Barcodes with Dynamsoft Barcode Reader's Custom Scan Parameters

Loading image...

Binarized image produced by Dynamsoft Barcode Reader:

JSON Template (help):

{
BarcodeReaderTaskSettingOptions
:
[
1 item  
0
:
{
BarcodeColourModes
:
null
BarcodeComplementModes
:
[
1 item  
0
:
{
Mode
:
BCM_SKIP
BarcodeFormatIds
:
[
1 item  
0
:
BF_DEFAULT
BaseBarcodeReaderTaskSettingName
:
DPMCodeReadingModes
:
[
1 item  
0
:
{
BarcodeFormat
:
BF_DATAMATRIX
Mode
:
DPMCRM_SKIP
DeblurModes
:
null
DeformationResistingModes
:
[
1 item  
0
:
{
BinarizationMode
:
{
BinarizationThreshold
:
-1
BlockSizeX
:
0
BlockSizeY
:
0
EnableFillBinaryVacancy
:
1
GrayscaleEnhancementModesIndex
:
-1
Mode
:
BM_LOCAL_BLOCK
MorphOperation
:
Close
MorphOperationKernelSizeX
:
-1
MorphOperationKernelSizeY
:
-1
MorphShape
:
Rectangle
ThresholdCompensation
:
10
GrayscaleEnhancementMode
:
{
Mode
:
GEM_AUTO
Sensitivity
:
-1
SharpenBlockSizeX
:
-1
SharpenBlockSizeY
:
-1
SmoothBlockSizeX
:
-1
SmoothBlockSizeY
:
-1
Level
:
5
Mode
:
DRM_SKIP
ExpectedBarcodesCount
:
0
LocalizationModes
:
[
4 items  
0
:
{
ConfidenceThreshold
:
60
IsOneDStacked
:
0
Mode
:
LM_CONNECTED_BLOCKS
ModuleSize
:
0
ScanDirection
:
0
ScanStride
:
0
1
:
{
ConfidenceThreshold
:
60
IsOneDStacked
:
0
Mode
:
LM_SCAN_DIRECTLY
ModuleSize
:
0
ScanDirection
:
0
ScanStride
:
0
2
:
{
ConfidenceThreshold
:
60
IsOneDStacked
:
0
Mode
:
LM_STATISTICS
ModuleSize
:
0
ScanDirection
:
0
ScanStride
:
0
3
:
{
ConfidenceThreshold
:
60
IsOneDStacked
:
0
Mode
:
LM_LINES
ModuleSize
:
0
ScanDirection
:
0
ScanStride
:
0
MaxThreadsInOneTask
:
4
Name
:
BR_1
ReturnBarcodeZoneClarity
:
0
SectionImageParameterArray
:
[
3 items  
0
:
{
ContinueWhenPartialResultsGenerated
:
1
ImageParameterName
:
IP_1
Section
:
ST_REGION_PREDETECTION
1
:
{
ContinueWhenPartialResultsGenerated
:
1
ImageParameterName
:
IP_1
Section
:
ST_BARCODE_LOCALIZATION
2
:
{
ContinueWhenPartialResultsGenerated
:
1
ImageParameterName
:
IP_Decode
Section
:
ST_BARCODE_DECODING
StartSection
:
ST_REGION_PREDETECTION
TerminateSetting
:
{
Section
:
ST_NULL
Stage
:
IRUT_NULL
TextResultOrderModes
:
[
3 items  
0
:
{
Mode
:
TROM_CONFIDENCE
1
:
{
Mode
:
TROM_POSITION
2
:
{
Mode
:
TROM_FORMAT
CaptureVisionTemplates
:
[
1 item  
0
:
{
ImageROIProcessingNameArray
:
[
1 item  
0
:
roi_default
ImageSource
:
MaxParallelTasks
:
4
MinImageCaptureInterval
:
0
Name
:
Default_1
OutputOriginalImage
:
0
SemanticProcessingNameArray
:
null
Timeout
:
10000
GlobalParameter
:
{
MaxTotalImageDimension
:
0
ImageParameterOptions
:
[
2 items  
0
:
{
BaseImageParameterName
:
BinarizationModes
:
[
1 item  
0
:
{
BinarizationThreshold
:
-1
BlockSizeX
:
5
BlockSizeY
:
5
EnableFillBinaryVacancy
:
1
GrayscaleEnhancementModesIndex
:
-1
Mode
:
BM_LOCAL_BLOCK
MorphOperation
:
Close
MorphOperationKernelSizeX
:
-1
MorphOperationKernelSizeY
:
-1
MorphShape
:
Rectangle
ThresholdCompensation
:
5
ColourConversionModes
:
[
1 item  
0
:
{
BlueChannelWeight
:
-1
GreenChannelWeight
:
-1
Mode
:
CICM_GENERAL
RedChannelWeight
:
-1
ReferChannel
:
H_CHANNEL
GrayscaleEnhancementModes
:
[
1 item  
0
:
{
Mode
:
GEM_GENERAL
Sensitivity
:
-1
SharpenBlockSizeX
:
-1
SharpenBlockSizeY
:
-1
SmoothBlockSizeX
:
-1
SmoothBlockSizeY
:
-1
GrayscaleTransformationModes
:
[
1 item  
0
:
{
Mode
:
GTM_ORIGINAL
IfEraseTextZone
:
1
Name
:
IP_1
RegionPredetectionModes
:
[
1 item  
0
:
{
AspectRatioRange
:
[]
FindAccurateBoundary
:
0
ForeAndBackgroundColours
:
[]
HeightRange
:
[]
ImageParameterName
:
MeasuredByPercentage
:
1
MinImageDimension
:
262144
Mode
:
RPM_GENERAL
RelativeRegions
:
[]
Sensitivity
:
1
SpatialIndexBlockSize
:
5
WidthRange
:
[]
ScaleDownThreshold
:
2300
ScaleUpModes
:
[
1 item  
0
:
{
AcuteAngleWithXThreshold
:
0
LetterHeightThreshold
:
0
Mode
:
SUM_LINEAR_INTERPOLATION
ModuleSizeThreshold
:
4
TargetLetterHeight
:
0
TargetModuleSize
:
6
TextDetectionMode
:
{
CharHeightRange
:
[
3 items  
0
:
1
1
:
1000
2
:
1
Direction
:
UNKNOWN
MaxSpacingInALine
:
-1
Mode
:
TTDM_LINE
Sensitivity
:
3
StringLengthRange
:
null
TextureDetectionModes
:
[
1 item  
0
:
{
Mode
:
TDM_GENERAL_WIDTH_CONCENTRATION
Sensitivity
:
5
1
:
{
BaseImageParameterName
:
BinarizationModes
:
[
1 item  
0
:
{
BinarizationThreshold
:
-1
BlockSizeX
:
0
BlockSizeY
:
0
EnableFillBinaryVacancy
:
1
GrayscaleEnhancementModesIndex
:
-1
Mode
:
BM_LOCAL_BLOCK
MorphOperation
:
Close
MorphOperationKernelSizeX
:
-1
MorphOperationKernelSizeY
:
-1
MorphShape
:
Rectangle
ThresholdCompensation
:
10
ColourConversionModes
:
[
1 item  
0
:
{
BlueChannelWeight
:
-1
GreenChannelWeight
:
-1
Mode
:
CICM_GENERAL
RedChannelWeight
:
-1
ReferChannel
:
H_CHANNEL
GrayscaleEnhancementModes
:
[
1 item  
0
:
{
Mode
:
GEM_GENERAL
Sensitivity
:
-1
SharpenBlockSizeX
:
-1
SharpenBlockSizeY
:
-1
SmoothBlockSizeX
:
-1
SmoothBlockSizeY
:
-1
GrayscaleTransformationModes
:
[
1 item  
0
:
{
Mode
:
GTM_ORIGINAL
IfEraseTextZone
:
1
Name
:
IP_Decode
RegionPredetectionModes
:
[
1 item  
0
:
{
AspectRatioRange
:
[]
FindAccurateBoundary
:
0
ForeAndBackgroundColours
:
[]
HeightRange
:
[]
ImageParameterName
:
MeasuredByPercentage
:
1
MinImageDimension
:
262144
Mode
:
RPM_GENERAL
RelativeRegions
:
[]
Sensitivity
:
1
SpatialIndexBlockSize
:
5
WidthRange
:
[]
ScaleDownThreshold
:
99999
ScaleUpModes
:
[
1 item  
0
:
{
AcuteAngleWithXThreshold
:
-1
LetterHeightThreshold
:
0
Mode
:
SUM_AUTO
ModuleSizeThreshold
:
0
TargetLetterHeight
:
0
TargetModuleSize
:
0
TextDetectionMode
:
{
CharHeightRange
:
[
3 items  
0
:
1
1
:
1000
2
:
1
Direction
:
UNKNOWN
MaxSpacingInALine
:
-1
Mode
:
TTDM_LINE
Sensitivity
:
3
StringLengthRange
:
null
TextureDetectionModes
:
[
1 item  
0
:
{
Mode
:
TDM_GENERAL_WIDTH_CONCENTRATION
Sensitivity
:
5
TargetROIDefOptions
:
[
1 item  
0
:
{
BaseTargetROIDefName
:
Location
:
{
Offset
:
{
FirstPoint
:
[
4 items  
0
:
0
1
:
0
2
:
1
3
:
1
FourthPoint
:
[
4 items  
0
:
0
1
:
100
2
:
1
3
:
1
MeasuredByPercentage
:
1
ReferenceObjectOriginIndex
:
0
ReferenceObjectType
:
ROT_ATOMIC_OBJECT
ReferenceXAxis
:
{
AxisType
:
AT_MIDPOINT_EDGE
EdgeIndex
:
0
LengthReference
:
LR_X
RotationAngle
:
90
ReferenceYAxis
:
{
AxisType
:
AT_MIDPOINT_EDGE
EdgeIndex
:
1
LengthReference
:
LR_Y
RotationAngle
:
90
SecondPoint
:
[
4 items  
0
:
100
1
:
0
2
:
1
3
:
1
ThirdPoint
:
[
4 items  
0
:
100
1
:
100
2
:
1
3
:
1
Name
:
roi_default
PauseFlag
:
0
TaskSettingNameArray
:
[
1 item  
0
:
BR_1

Issue: Reading a small barcode within a large image can be challenging, especially when the barcode is slightly blurred, has small modules, or is affected by background interference. This makes it difficult for a barcode reader to accurately scan the code. In the sample image, a 2 mm x 2 mm DataMatrix code is shown where the camera cannot be positioned too close to the barcode.

Solution: The Dynamsoft Barcode Reader SDK offers flexible APIs, enabling developers to build a custom barcode scanner for various usage scenarios such as reading small barcodes at a distance. For this scenario, we recommend the following adjustments:

  • Reduce the blocksize to minimize background interference during binarization and make the modules clearer.
  • Set DeblurModes to null to let the program decide which deblur algorithms to use to enhance clarity for slightly blurred codes.
  • Enable ScaleUpModes to enlarge very small modules for improved readability.

Read this case study to see how Naturalis ARISE, a scientific research consortium, achieved high accuracy and offline capability for reading tiny Data Matrix codes on specimen containers, even through plastic bags, test tubes, and liquids, in remote outdoor locations with the help of Dynamsoft Barcode Reader SDK.

Single
Blur
White barcode on black background
Small barcode on a large image
Data Matrix

Download Our Free Barcode Test Sheet

Curious about how our Dynamsoft Barcode Scanner SDK works in real-world applications? Download our free Barcode Test Sheet, a comprehensive PDF packed with different types of barcodes, batched barcodes or even damaged codes ready to be scanned. Explore the real-world examples to see how Dynamsoft can boost your scanning performance and tackle the challenges of difficult-to-read barcodes.

Barcode Test Sheet
barcode-test-sheet-illus.png