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

AVL.DetectMultipleBarcodes(AvlNet.Image, AvlNet.BarcodeFormat?, float, int, int, int, float, float, AvlNet.Rectangle2D[], AvlNet.Image, AvlNet.Rectangle2D[])

Determines the positions of multiple barcodes on the input image.

Namespace:AvlNet
Assembly:AVL.NET.dll

Syntax


public static void DetectMultipleBarcodes(
	AvlNet.Image inImage,
	AvlNet.BarcodeFormat? inFormat,
	float inMinGradientLength,
	int inBaseBarWidth,
	int inScanCount,
	int inScanWidth,
	float inMinStrength,
	float inSmoothingStdDev,
	out AvlNet.Rectangle2D[] outBarcodePositions,
	out AvlNet.Image diagGradientImage,
	out AvlNet.Rectangle2D[] diagBarcodeCandidates
)

Parameters

inImage
Type: AvlNet.Image
Input image
inFormat
Type: System.Nullable<AvlNet.BarcodeFormat>
Format of the barcode, or null.
inMinGradientLength
Type: System.Single
Minimal gradient length of edge pixels used for detecting barcodes
inBaseBarWidth
Type: System.Int32
Estimated width of the thinnest bar
inScanCount
Type: System.Int32
Number of scan lines used in detecting barcode
inScanWidth
Type: System.Int32
Width of the single scan
inMinStrength
Type: System.Single
Minimal strength of an extracted edge
inSmoothingStdDev
Type: System.Single
Standard deviation of the gaussian smoothing applied to the profile extracted in each scan
outBarcodePositions
Type: AvlNet.Rectangle2D
Positions of the found barcodes
diagGradientImage
Type: AvlNet.Image
Image of gradient directions
diagBarcodeCandidates
Type: AvlNet.Rectangle2D
Places with high gradient values that are further investigated

Examples

Filter finds barcodes rotated by any angle.

Low quality barcode printed on plastic foil.

Barcode on package wrapped in plastic foil.

Barcode on blurry image.

Barcode on reflective and wrapped surface.

Barcode on standard 330ml can.

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