You are here: Start » AVL.NET » AVL.ReadMultipleBarcodes(AvlNet.Image, AvlNet.Rectangle2D?, AvlNet.CoordinateSystem2D?, AvlNet.BarcodeFormat?, float, int, int, int, int, float, float, AvlNet.Rectangle2D[], string[], AvlNet.BarcodeFormat[], AvlNet.Rectangle2D, AvlNet.Image, AvlNet.Rectangle2D[], AvlNet.Segment2D[][])

AVL.ReadMultipleBarcodes(AvlNet.Image, AvlNet.Rectangle2D?, AvlNet.CoordinateSystem2D?, AvlNet.BarcodeFormat?, float, int, int, int, int, float, float, AvlNet.Rectangle2D[], string[], AvlNet.BarcodeFormat[], AvlNet.Rectangle2D, AvlNet.Image, AvlNet.Rectangle2D[], AvlNet.Segment2D[][])

Namespace:AvlNet
Assembly:AVL.NET.dll

Syntax


public static void ReadMultipleBarcodes(
	AvlNet.Image inImage,
	AvlNet.Rectangle2D? inRoi,
	AvlNet.CoordinateSystem2D? inRoiAlignment,
	AvlNet.BarcodeFormat? inBarcodeFormat,
	float inMinGradientLength,
	int inBaseBarWidth,
	int inDetectionScanCount,
	int inReadingScanCount,
	int inScanWidth,
	float inMinStrength,
	float inSmoothingStdDev,
	out AvlNet.Rectangle2D[] outBarcodePositions,
	out string[] outDecodedTexts,
	out AvlNet.BarcodeFormat[] outBarcodeFormats,
	out AvlNet.Rectangle2D outAlignedRoi,
	out AvlNet.Image diagGradientImage,
	out AvlNet.Rectangle2D[] diagBarcodeCandidates,
	out AvlNet.Segment2D[][] diagScheduledScanSegments
)

Parameters

inImage
Type: AvlNet.Image
inRoi
Type: System.Nullable<AvlNet.Rectangle2D>
inRoiAlignment
Type: System.Nullable<AvlNet.CoordinateSystem2D>
inBarcodeFormat
Type: System.Nullable<AvlNet.BarcodeFormat>
inMinGradientLength
Type: System.Single
inBaseBarWidth
Type: System.Int32
inDetectionScanCount
Type: System.Int32
inReadingScanCount
Type: System.Int32
inScanWidth
Type: System.Int32
inMinStrength
Type: System.Single
inSmoothingStdDev
Type: System.Single
outBarcodePositions
Type: AvlNet.Rectangle2D
outDecodedTexts
Type: System.String
outBarcodeFormats
Type: AvlNet.BarcodeFormat
outAlignedRoi
Type: AvlNet.Rectangle2D
diagGradientImage
Type: AvlNet.Image
diagBarcodeCandidates
Type: AvlNet.Rectangle2D
diagScheduledScanSegments
Type: AvlNet.Segment2D

Description

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

Examples

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.

Hardware acceleration settings may be manipulated with Settings class.

See also