Class BinaryThresholdFilter
A filter to binarize an image.
Inheritance
Implements
Namespace: IronBarCode
Assembly: IronBarCode.dll
Syntax
public class BinaryThresholdFilter : Object, IImageFilter
A hard two-tone conversion of a barcode image, where every pixel becomes either black or white at a chosen luminance cutoff, is the job of BinaryThresholdFilter. It splits the pixels at a single global threshold by comparing the luminance of each color component, which is the fast, predictable way to flatten a evenly lit but low-contrast image into the crisp bars a decoder expects. Where AdaptiveThresholdFilter computes a cutoff per region for patchy lighting, this filter uses one cutoff across the whole frame, so it suits images whose brightness is consistent and only the contrast is weak.
The filter implements IImageFilter and is added to the ImageFilterCollection on BarcodeReaderOptions.ImageFilters. Because the reader applies the collection in order before decoding, a binary threshold usually runs early, turning the source into a clean black-and-white image that any later step works from. A developer instantiates it, adds it to the collection, and hands the options to BarcodeReader.Read.
The constructors range from a parameterless default to overloads that take a Threshold, the Lower and Upper colors, a Rectangle region, and a BinarizationMethod. The Threshold property is the cutoff luminance, Lower and Upper set the two colors pixels collapse to, Rectangle confines the operation to a region of interest, and BinarizationMethod selects the algorithm used to decide the split. IronBarcode ships sensible defaults for every property, so a bare new BinaryThresholdFilter() is often enough; reach for the overloads only when a specific image needs a tuned cutoff or a restricted region.
using IronBarCode;
var options = new BarcodeReaderOptions
{
ImageFilters = new ImageFilterCollection { new BinaryThresholdFilter() }
};
var results = BarcodeReader.Read("low-contrast.png", options);The image correction how-to compares this filter against the adaptive threshold on a real barcode, and the imperfect barcode example reads a degraded image end to end. The image orientation correction how-to covers the rotation and skew cases a threshold pass does not address.
Constructors
BinaryThresholdFilter()
Initializes a new instance of the BinaryThresholdFilter class.
Declaration
public BinaryThresholdFilter()
BinaryThresholdFilter(BinarizationMethod)
Initializes a new instance of the BinaryThresholdFilter class with the specified threshold and binarization method to use.
Declaration
public BinaryThresholdFilter(BinarizationMethod binarizationMethod)
Parameters
| Type | Name | Description |
|---|---|---|
| BinarizationMethod | binarizationMethod | Binarization method to use. |
BinaryThresholdFilter(Color, Color, Single)
Initializes a new instance of the BinaryThresholdFilter class with the specified upper and lower colors, and threshold.
Declaration
public BinaryThresholdFilter(Color upper, Color lower, float threshold)
Parameters
| Type | Name | Description |
|---|---|---|
| IronSoftware.Drawing.Color | upper | The color to use for pixels that are above the threshold. |
| IronSoftware.Drawing.Color | lower | The color to use for pixels that are below the threshold. |
| System.Single | threshold | Threshold limit (0.0-1.0) to consider for binarization. |
BinaryThresholdFilter(Color, Color, Single, BinarizationMethod)
Initializes a new instance of the BinaryThresholdFilter class with the specified upper and lower colors, threshold, and binarization method.
Declaration
public BinaryThresholdFilter(Color upper, Color lower, float threshold, BinarizationMethod binarizationMethod)
Parameters
| Type | Name | Description |
|---|---|---|
| IronSoftware.Drawing.Color | upper | The color to use for pixels that are above the threshold. |
| IronSoftware.Drawing.Color | lower | The color to use for pixels that are below the threshold. |
| System.Single | threshold | Threshold limit (0.0-1.0) to consider for binarization. |
| BinarizationMethod | binarizationMethod | Binarization method to use. |
BinaryThresholdFilter(Color, Color, Single, Rectangle)
Initializes a new instance of the BinaryThresholdFilter class with the specified Upper, Lower, Threshold and Rectangle.
Declaration
public BinaryThresholdFilter(Color upper, Color lower, float threshold, Rectangle rectangle)
Parameters
| Type | Name | Description |
|---|---|---|
| IronSoftware.Drawing.Color | upper | The color to use for pixels that are above the threshold. |
| IronSoftware.Drawing.Color | lower | The color to use for pixels that are below the threshold. |
| System.Single | threshold | Threshold limit (0.0-1.0) to consider for binarization. |
| IronSoftware.Drawing.Rectangle | rectangle | Rectangle region to apply the filter on. |
BinaryThresholdFilter(Color, Color, Single, Rectangle, BinarizationMethod)
Initializes a new instance of the BinaryThresholdFilter class with the specified upper and lower colors, threshold, rectangle, and binarization method.
Declaration
public BinaryThresholdFilter(Color upper, Color lower, float threshold, Rectangle rectangle, BinarizationMethod binarizationMethod)
Parameters
| Type | Name | Description |
|---|---|---|
| IronSoftware.Drawing.Color | upper | The color to use for pixels that are above the threshold. |
| IronSoftware.Drawing.Color | lower | The color to use for pixels that are below the threshold. |
| System.Single | threshold | Threshold limit (0.0-1.0) to consider for binarization. |
| IronSoftware.Drawing.Rectangle | rectangle | Rectangle region to apply the filter on. |
| BinarizationMethod | binarizationMethod | Binarization method to use. |
BinaryThresholdFilter(Single)
Initializes a new instance of the BinaryThresholdFilter class with the specified threshold.
Declaration
public BinaryThresholdFilter(float threshold)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Single | threshold | Threshold to apply for binarization. Must be between [0.0-1.0]. |
BinaryThresholdFilter(Single, BinarizationMethod)
Initializes a new instance of the BinaryThresholdFilter class with the specified threshold and binarization.
Declaration
public BinaryThresholdFilter(float threshold, BinarizationMethod binarizationMethod)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Single | threshold | Threshold to apply for binarization. Must be between [0.0-1.0]. |
| BinarizationMethod | binarizationMethod | Binarization method to use. |
Properties
BinarizationMethod
Binarization method to use. Default = Otsu's Method.
Declaration
public BinarizationMethod BinarizationMethod { get; set; }
Property Value
| Type | Description |
|---|---|
| BinarizationMethod |
Lower
The color to use for pixels that are below the threshold.
Declaration
public Color Lower { get; set; }
Property Value
| Type | Description |
|---|---|
| IronSoftware.Drawing.Color |
Rectangle
Rectangle region to apply the filter on.
Declaration
public Rectangle Rectangle { get; set; }
Property Value
| Type | Description |
|---|---|
| IronSoftware.Drawing.Rectangle |
Threshold
The threshold to apply binarization of the image. Must be between [0.0-1.0]. Default = 0.4.
Declaration
public float Threshold { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Single |
Upper
The color to use for pixels that are above the threshold.
Declaration
public Color Upper { get; set; }
Property Value
| Type | Description |
|---|---|
| IronSoftware.Drawing.Color |