Table of contents

How to Read High-Density QR Codes

A QR code can store up to 7,089 numbers, 4,296 alphanumeric characters, 2,953 bytes, or 1,817 Japanese Kanjis. As the encoded information increases, the QR code becomes denser. The diagram below displays a QR code that has high density.

High-density QR Code

Figure 1 – High-density QR Code

In some scenarios, high-density QR codes become more difficult to locate and recognize due to small barcode images, perspective, and distortion.

We can do the following to optimize the read rate of high-density QR codes:

  • Scale up modules if they are too small
  • Sharpen the image
  • Run gray equalization

Example

Below is an example illustrating how to configure the parameters to read density QR Codes.

  • Update parameters in your JSON template

      {
          "CaptureVisionTemplates": [
              {
                  "Name": "CV_0",
                  "ImageROIProcessingNameArray": ["TA_0" ],
                  "Timeout":5000
              }       
          ],
          "TargetROIDefOptions" : [
              {
                  "Name": "TA_0",
                  "TaskSettingNameArray": [ "BR_0" ]
              }
          ],
          "BarcodeReaderTaskSettingOptions": [
              {
                  "Name" : "BR_0",
                  "BarcodeFormatIds" : ["BF_QR_CODE"],
                  "ExpectedBarcodesCount" : 1,
                  "SectionImageParameterArray": [
                      {
                          "Section": "ST_REGION_PREDETECTION",
                          "ImageParameterName": "IP_0"
                      },
                      {
                          "Section": "ST_BARCODE_LOCALIZATION",
                          "ImageParameterName": "IP_0"
                      },
                      {
                          "Section": "ST_BARCODE_DECODING",
                          "ImageParameterName": "IP_0"
                      }
                  ],
                  "LocalizationModes":[
                      {
                          "Mode": "LM_CONNECTED_BLOCKS"
                      }
                  ],
                  "DeblurModes":[
                      {
                          "Mode": "DM_SHARPENING"
                      },
                      {
                          "Mode": "DM_GRAY_EQUALIZATION"
                      }
                  ]
              }
          ],
          "ImageParameterOptions": [
              {
                  "Name": "IP_0",
                  "ScaleDownThreshold": 10000,
                  "ScaleUpModes": [
                      {
                          "Mode": "SUM_LINEAR_INTERPOLATION",
                          "AcuteAngleWithXThreshold": 0,
                          "ModuleSizeThreshold": 4,
                          "TargetModuleSize": 6
                      }
                  ]
              }
          ]
      }
    
  • Apply the above settings following the article Use Templates for Configuring Parameters.

This page is compatible for:

Is this page helpful?

YesYes NoNo