Module1.vb
Imports Bytescout.BarCodeReader
Module Module1
''' <summary>
''' This exmaple demonstrates the use of image filters to improve the decoding or speed.
''' </summary>
Sub Main()
Using reader As New Reader("demo", "demo")
' Set barcode type to find
reader.BarcodeTypesToFind.Code128 = True
' WORKING WITH LOW CONTRAST BARCODE IMAGES
' Add the contrast adjustment for the low contrast image
reader.ImagePreprocessingFilters.AddContrast(40)
Console.WriteLine("Image {0}", "low-contrast-barcode.png")
Dim barcodes As FoundBarcode() = reader.ReadFrom("low-contrast-barcode.png")
If barcodes.Length = 0 Then
Console.WriteLine("No barcode found!")
Else
For Each barcode As FoundBarcode In barcodes
Console.WriteLine("Found barcode {0} with value '{1}'", barcode.Type, barcode.Value)
Next
End If
reader.ImagePreprocessingFilters.Clear()
Console.WriteLine()
' WORKING WITH NOISY BARCODE IMAGES
' Add the median filter to lower the noise
reader.ImagePreprocessingFilters.AddMedian()
Console.WriteLine("Image {0}", "noisy-barcode.png")
barcodes = reader.ReadFrom("noisy-barcode.png")
If barcodes.Length = 0 Then
Console.WriteLine("No barcode found!")
Else
For Each barcode As FoundBarcode In barcodes
Console.WriteLine("Found barcode {0} with value '{1}'", barcode.Type, barcode.Value)
Next
End If
reader.ImagePreprocessingFilters.Clear()
Console.WriteLine()
' WORKING WITH DENSE AND ILLEGIBLE BARCODES
' Add the scale filter to enlarge the barcode to make gaps between bars more distinguishable
reader.ImagePreprocessingFilters.AddScale(2) ' enlarge twice
Console.WriteLine("Image {0}", "too-dense-barcode.png")
barcodes = reader.ReadFrom("too-dense-barcode.png")
If barcodes.Length = 0 Then
Console.WriteLine("No barcode found!")
Else
For Each barcode As FoundBarcode In barcodes
Console.WriteLine("Found barcode {0} with value '{1}'", barcode.Type, barcode.Value)
Next
End If
reader.ImagePreprocessingFilters.Clear()
Console.WriteLine()
' REMOVE EMPTY MARGINS FROM IMAGE TO SPEED UP THE PROCESSING
' Add the crop filter to cut off empty margins from the image.
' This will not improve the recognition quality but may speed up the processing
' if you enabled multiple barcode types to search.
reader.ImagePreprocessingFilters.AddCropDark()
Console.WriteLine("Image {0}", "barcode-with-large-margins.png")
barcodes = reader.ReadFrom("barcode-with-large-margins.png")
If barcodes.Length = 0 Then
Console.WriteLine("No barcode found!")
Else
For Each barcode As FoundBarcode In barcodes
Console.WriteLine("Found barcode {0} with value '{1}'", barcode.Type, barcode.Value)
Next
End If
reader.ImagePreprocessingFilters.Clear()
Console.WriteLine()
End Using
Console.WriteLine("Press any key to exit..")
Console.ReadKey()
End Sub
End Module
Click here to get your Free Trial version of the SDK
also available as: