You are here: Start » AVL.NET » Function Reference » Computer Vision » Barcodes » AVL.DetectSingleBarcode

AVL.DetectSingleBarcode

Determines the position of a single barcode on the input image.

Namespace:AvlNet
Assembly:AVL.NET.dll

Syntax

C++
C#
 
public static void DetectSingleBarcode
(
	AvlNet.Image inImage,
	AvlNet.BarcodeFormat? inFormat,
	float inMinGradientLength,
	int inBaseBarWidth,
	int inScanCount,
	int inScanWidth,
	float inMinStrength,
	float inSmoothingStdDev,
	AvlNet.Polarity inPolarity,
	out AvlNet.Rectangle2D? outBarcodePosition,
	NullableRef<NullableValue<AvlNet.Polarity>> outBarcodePolarity,
	NullableRef<List<AvlNet.Rectangle2D>> outBarcodeCandidates,
	AvlNet.Image diagGradientImage
)

Parameters

Name Type Range Default Description
inImageAvlNet.ImageInput image.
inFormatAvlNet.BarcodeFormat?EAN13Format of the barcode. Default value: EAN13.
inMinGradientLengthfloat<0.0f, INF>8.0fMinimal gradient length of edge pixels used for detecting barcodes. Default value: 8.0f.
inBaseBarWidthint<1, INF>3Estimated width of the thinnest bar. Default value: 3.
inScanCountint<1, INF>5Number of scan lines used in detecting barcode. Default value: 5.
inScanWidthint<1, INF>5Width of the single scan. Default value: 5.
inMinStrengthfloat<0.0f, INF>5.0fMinimal strength of an extracted edge. Default value: 5.0f.
inSmoothingStdDevfloat<0.0f, INF>0.25fStandard deviation of the gaussian smoothing applied to the profile extracted in each scan. Default value: 0.25f.
inPolarityAvlNet.PolarityDarkSpecifies whether code is darker or brighter than the background. Default value: Dark.
outBarcodePositionAvlNet.Rectangle2D?Position of the found barcode.
outBarcodePolarityAvlNet.NullableRef<AvlNet.NullableValue<AvlNet.Polarity>>Polarity of the found barcode. Can be null to skip this parameter calculation.
outBarcodeCandidatesAvlNet.NullableRef<System.Collections.Generic.List<AvlNet.Rectangle2D>>Places with high gradient values that are further investigated. Can be null to skip this parameter calculation.
diagGradientImageAvlNet.ImageImage of gradient directions.

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

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.

Hardware acceleration settings may be manipulated with Settings class.

Function Overrides

See also