Back to Adaptive Vision Studio website

You are here: Start » Filter Reference » Barcodes » ReadSingleBarcode

ReadSingleBarcode


Detects and recognizes a single barcode on the input image.

Name Type Range Description
inImage Image Input image
inRoi Rectangle2D* Region of interest
inRoiAlignment CoordinateSystem2D* Adjusts the region of interest to the position of the inspected object
inBarcodeFormat BarcodeFormat* Format of the barcode
inMinGradientLength Real 0.0 - Minimal gradient length of edge pixels used for detecting barcodes
inBaseBarWidth Integer 1 - Estimated width of the thinnest bar
inDetectionScanCount Integer 1 - Number of scan lines used in detecting barcode
inReadingScanCount Integer 1 - Number of parallel scans run until first successful read
inScanWidth Integer 1 - Width of the single scan
inMinStrength Real 0.0 - Minimal strength of an extracted edge
inSmoothingStdDev Real 0.0 - Standard deviation of the gaussian smoothing applied to the profile extracted in each scan
outBarcodePosition Rectangle2D? Position of the found barcode
outDecodedText String? Decoded barcode content or nothing if all of the scans failed
outBarcodeFormat BarcodeFormat? Decoded barcode format or nothing if all of the scans failed
outAlignedRoi Rectangle2D Input ROI after transformation (in the image coordinates)
diagGradientImage Image Image of gradient directions
diagBarcodeCandidates Rectangle2DArray Places with high gradient values that are further investigated
diagScheduledScanSegments Segment2DArray Scheduled scan segments

Applications

To be used as an easy all-in-one solution for typical barcode reading applications.

Description

This filter works as a composition of DetectSingleBarcode and RecognizeBarcode filters.

Hints

  • Connect inImage with the output of your image acquisition filter.
  • Select inBarcodeFormat according to the type of codes you want to read. If you choose the wrong format, the codes will not be recognized. Setting its value to Auto can increase the computation time considerably. Furthermore, the Auto value causes detection of UPC-A codes as EAN-13 codes.
  • If the image quality is low, increase inMinGradientLength or increase inSmoothingStdDev. The diagGradientImage output shows how this affects an intermediate image.
  • If the image resolution is high, increase inBaseBarWidth or resize/downsample the input image.

Examples

Description of usage of this filter can be found in examples and tutorial: Barcodes (EAN13), Barcodes (EAN8), Barcodes (Code128), Barcodes (Code39), Barcodes (EAN13 Addon2), Barcodes (EAN13 Addon5), Barcodes (Interleaved2of5), Read the Barcode.

Rotated barcode.

Low quality barcode printed on plastic foil.

Barcode on package wrapped in plastic foil.

Barcode on blurry image.

Barcode on standard 330ml can.

Barcode on reflective and wrapped surface.

EAN-13 with add-on 2 used to indicate a book edition.

EAN-13 with add-on 5 to give a suggestion for the price.

Remarks

Minimal bar width requirement

To provide precise detection of the barcode width of the thinnest bar should be at least 1.5 pixels.

Depending on the barcode format guard or start/end code patterns must be readable.

Pharmacode usage

The pharmacode barcode type can be read correctly in both directions. To get results from both directions use a Pharmacode and PharmacodeInversed barcode types.

Before decoding a Pharmacode the code orientation angle is normalized to a range from -45° to 135° what makes the code decoding more stable

Results of reading using a different Pharmacode directions: Pharmacode = 23 and PharmacodeInversed = 16.

Using a relative coordinate systems

For more information about local coordinate systems please refer to the following article.

Hardware Acceleration

This operation supports automatic parallelization for multicore and multiprocessor systems.

Complexity Level

This filter is available on Basic Complexity Level.

Filter Group

This filter is member of ReadBarcodes filter group.

See Also

  • DecodeBarcode – Translates an array of bar widths to sequence of digits or text in accordance to the selected barcode standard.
  • RecognizeBarcode – Extracts information from a barcode located on the input image at a given position.