You are here: Start » AVL.NET » AVL.ReadSingleBarcode(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.ReadSingleBarcode(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[])
Detects and recognizes a single barcode on the input image.
| Namespace: | AvlNet |
|---|---|
| Assembly: | AVL.NET.dll |
Syntax
public static void ReadSingleBarcode( 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? outBarcodePosition, out string outDecodedText, out AvlNet.BarcodeFormat? outBarcodeFormat, out AvlNet.Rectangle2D outAlignedRoi, out AvlNet.Image diagGradientImage, out AvlNet.Rectangle2D[] diagBarcodeCandidates, out AvlNet.Segment2D[] diagScheduledScanSegments )
Parameters
- inImage
- Type: AvlNet.Image
Input image - inRoi
- Type: System.Nullable<AvlNet.Rectangle2D>
Region of interest, or null. - inRoiAlignment
- Type: System.Nullable<AvlNet.CoordinateSystem2D>
Adjusts the region of interest to the position of the inspected object, or null. - inBarcodeFormat
- 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 - inDetectionScanCount
- Type: System.Int32
Number of scan lines used in detecting barcode - inReadingScanCount
- Type: System.Int32
Number of parallel scans run until first successful read - 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 - outBarcodePosition
- Type: System.Nullable<AvlNet.Rectangle2D>
Position of the found barcode - outDecodedText
- Type: System.String
Decoded barcode content or nothing if all of the scans failed - outBarcodeFormat
- Type: System.Nullable<AvlNet.BarcodeFormat>
Decoded barcode format or nothing if all of the scans failed - outAlignedRoi
- Type: AvlNet.Rectangle2D
- diagGradientImage
- Type: AvlNet.Image
Image of gradient directions - diagBarcodeCandidates
- Type: AvlNet.Rectangle2D
Places with high gradient values that are further investigated - diagScheduledScanSegments
- Type: AvlNet.Segment2D
Scheduled scan segments
Description
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.
