Back to Aurora Vision Library website

You are here: Start » Function Reference » Computer Vision » Barcodes » ReadSingleBarcode

ReadSingleBarcode


Header: AVL.h
Namespace: avl
Module: Barcodes

Detects and recognizes a single barcode on the input image.

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

Syntax

C++
C#
 
void avl::ReadSingleBarcode
(
	const avl::Image& inImage,
	atl::Optional<const avl::ShapeRegion&> inRoi,
	atl::Optional<const avl::CoordinateSystem2D&> inRoiAlignment,
	const avl::BarcodeParams& inBarcodeParams,
	const avl::BarcodeDetectionParams& inDetectionParams,
	atl::Conditional<avl::Barcode>& outBarcode,
	atl::Optional<atl::Array<avl::Rectangle2D>&> outBarcodeCandidates = atl::NIL,
	atl::Optional<avl::ShapeRegion&> outAlignedRoi = atl::NIL,
	avl::Image& diagGradientImage,
	atl::Array<atl::Array<avl::Segment2D>>& diagScheduledScanSegments
)

Parameters

Name Type Default Description
Input value inImage const Image& Input image
Input value inRoi Optional<const ShapeRegion&> NIL Region of interest
Input value inRoiAlignment Optional<const CoordinateSystem2D&> NIL Adjusts the region of interest to the position of the inspected object
Input value inBarcodeParams const BarcodeParams& Specification of barcode that can be detected
Input value inDetectionParams const BarcodeDetectionParams& Parameters of the barcode detection algorithm
Output value outBarcode Conditional<Barcode>& A barcode that has been correctly detected and decoded
Output value outBarcodeCandidates Optional<Array<Rectangle2D>&> NIL Places with high gradient values that are further investigated
Output value outAlignedRoi Optional<ShapeRegion&> NIL Input ROI after transformation (in the image coordinates)
Diagnostic input diagGradientImage Image& Image of gradient directions
Diagnostic input diagScheduledScanSegments Array<Array<Segment2D>>& Scheduled scan segments

Optional Outputs

The computation of following outputs can be switched off by passing value atl::NIL to these parameters: outBarcodeCandidates, outAlignedRoi.

Read more about Optional Outputs.

Description

This filter detects a barcode present in the input image and reads its content.

Hints

  • Connect inImage with the output of your image acquisition filter.
  • Select inBarcodeParams.Format 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 resolution is high, set inBarcodeParams.MaxModuleSize accordingly or resize/downsample the input image.

Examples

Rotated barcode.

Low quality barcode printed on plastic foil.

Barcode on package wrapped in plastic foil.

Barcode in a 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

Read more about Local Coordinate Systems in Machine Vision Guide: Local Coordinate Systems.

Hardware Acceleration

This operation supports automatic parallelization for multicore and multiprocessor systems.

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.