You are here: Start » FIL.NET » Function Reference » Computer Vision » Barcodes » FIL.ReadMultipleBarcodes
Detects and recognizes multiple barcodes on the input image.
Namespace: | FilNet |
---|---|
Assembly: | FIL.NET.dll |
Syntax
public static void ReadMultipleBarcodes ( FilNet.Image inImage, float inMinGradientLength, int inBaseBarWidth, int inDetectionScanCount, int inReadingScanCount, int inScanWidth, float inMinStrength, float inSmoothingStdDev, FilNet.Polarity inPolarity, IList<FilNet.Rectangle2D> outBarcodePositions, IList<string> outDecodedTexts )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
![]() | inImage | FilNet.Image | Input image. | ||
![]() | inMinGradientLength | float | <0.0f, INF> | 8.0f | Minimal gradient length of edge pixels used for detecting barcodes. Default value: 8.0f. |
![]() | inBaseBarWidth | int | <1, INF> | 3 | Estimated width of the thinnest bar. Default value: 3. |
![]() | inDetectionScanCount | int | <1, INF> | 5 | Number of scan lines used in detecting barcode. Default value: 5. |
![]() | inReadingScanCount | int | <1, INF> | 5 | Number of parallel scans run until first successful read. Default value: 5. |
![]() | inScanWidth | int | <1, INF> | 5 | Width of the single scan. Default value: 5. |
![]() | inMinStrength | float | <0.0f, INF> | 5.0f | Minimal strength of an extracted edge. Default value: 5.0f. |
![]() | inSmoothingStdDev | float | <0.0f, INF> | 0.25f | Standard deviation of the gaussian smoothing applied to the profile extracted in each scan. Default value: 0.25f. |
![]() | inPolarity | FilNet.Polarity | Dark | Specifies whether code is darker or brighter than the background. Default value: Dark. | |
![]() | outBarcodePositions | System.Collections.Generic.IList<FilNet.Rectangle2D> | Positions of the found barcodes. | ||
![]() | outDecodedTexts | System.Collections.Generic.IList<string> | Decoded barcode content. |
Description
Examples
![]() Two barcodes in a good quality image. |
![]() Two barcodes in a blurry image. |
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
- ReadMultipleBarcodes(Image, Nullable<Rectangle2D>, Nullable<CoordinateSystem2D>, Nullable<BarcodeFormat>, Single, Int32, Int32, Int32, Int32, Single, Single, Polarity, IList<Rectangle2D>, IList<String>)
- ReadMultipleBarcodes(Image, Nullable<Rectangle2D>, Nullable<CoordinateSystem2D>, Nullable<BarcodeFormat>, Single, Int32, Int32, Int32, Int32, Single, Single, Polarity, IList<Rectangle2D>, IList<String>, NullableRef<List<BarcodeFormat>>, NullableRef<List<Polarity>>, NullableValue<Rectangle2D>, NullableRef<List<Rectangle2D>>)
- ReadMultipleBarcodes(Image, Nullable<Rectangle2D>, Nullable<CoordinateSystem2D>, Nullable<BarcodeFormat>, Single, Int32, Int32, Int32, Int32, Single, Single, Polarity, IList<Rectangle2D>, IList<String>, IList<BarcodeFormat>, IList<Polarity>, Rectangle2D, IList<Rectangle2D>, Image, IList<List<Segment2D>>)
- ReadMultipleBarcodes(Image, Nullable<Rectangle2D>, Nullable<CoordinateSystem2D>, Nullable<BarcodeFormat>, Single, Int32, Int32, Int32, Int32, Single, Single, Polarity, IList<Rectangle2D>, IList<String>, NullableRef<List<BarcodeFormat>>, NullableRef<List<Polarity>>, NullableValue<Rectangle2D>, NullableRef<List<Rectangle2D>>, Image, IList<List<Segment2D>>)