< Back
Blurry QR Codes and Barcodes

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
:
[
2 items  
0
:
BF_DEFAULT
1
:
BF_PATCHCODE
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
:
999
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
:
99999
GlobalParameter
:
{
MaxTotalImageDimension
:
0
ImageParameterOptions
:
[
2 items  
0
:
{
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
:
[
3 items  
0
:
{
Mode
:
GEM_GENERAL
Sensitivity
:
-1
SharpenBlockSizeX
:
-1
SharpenBlockSizeY
:
-1
SmoothBlockSizeX
:
-1
SmoothBlockSizeY
:
-1
1
:
{
Mode
:
GEM_GRAY_EQUALIZE
Sensitivity
:
5
SharpenBlockSizeX
:
-1
SharpenBlockSizeY
:
-1
SmoothBlockSizeX
:
-1
SmoothBlockSizeY
:
-1
2
:
{
Mode
:
GEM_GRAY_SMOOTH
Sensitivity
:
-1
SharpenBlockSizeX
:
-1
SharpenBlockSizeY
:
-1
SmoothBlockSizeX
:
3
SmoothBlockSizeY
:
3
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:

Blurry QR codes and barcodes pose a significant challenge to effective scanning. The images of the codes may be taken in low resolution or motion.

Solution:

There are some parameters we can adjust to improve the reading rate.

  1. Set DeblurModes to null to let the program decide which deblur algorithms to use to read blurred barcodes.
  2. Set the ExpectedBarcodesCount to a higher value like 999 so that it will try all the available image processing methods.
  3. Set GrayscaleEnhancementModes to enhance the image.
  4. Set ScaleUpModes to scale up modules if their size is too small.

Image Source:

https://boofcv.org/index.php?title=Performance:QrCode

Multiple
Blur
Curved
Other
OneD

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