Verwendung von Bildkorrekturfiltern

Hairil related to Verwendung von Bildkorrekturfiltern
Hairil Hasyimi Bin Omar
11. Oktober 2023
Aktualisiert 17. Dezember 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Seien wir ehrlich. Nicht jedes Bild ist perfekt, und es ist auch einer der Hauptfaktoren, dass ein Barcode-Bild von IronBarcode nicht gelesen werden kann. Das ist nicht allein die Schuld des Nutzers. Anstatt sich die Mühe zu machen, das Bild neu zu erfassen oder eine andere Software zur Bildverbesserung zu verwenden, hat IronBarcode eine Funktion entwickelt, mit der der Benutzer programmatisch Filter auf das Bild anwenden kann. Dies würde IronBarcode helfen, das Bild zu lesen und die Genauigkeit zu verbessern.

Lesen Sie weiter, um mehr über die verfügbaren Bildkorrekturfilter in IronBarcode, ihre Auswirkungen auf Bilder und ihre Anwendung zu erfahren.

Erste Schritte mit IronBarcode

Beginnen Sie noch heute mit der Verwendung von IronBarcode in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer


Verwendung von Bildfiltern zur Verbesserung der Lesbarkeit Beispiel

Um den Filter anzuwenden, instanziieren Sie die Klasse ImageFilterCollection und erstellen Sie Instanzen der einzelnen Filter. Weisen Sie das Objekt dann der Eigenschaft ImageFilters des Objekts BarcodeReaderOptions zu. übergeben Sie das Optionsobjekt zusammen mit dem Beispielbild an die Read-Methode.

Verwenden wir das unten stehende Bild als Beispielbild.

Beispielbild

Auf den ersten Blick scheint das Bild ziemlich unscharf zu sein. Die Helligkeit ist jedoch akzeptabel, und die Farben Weiß und Schwarz sind gut unterscheidbar. Daher müssen wir mindestens den SharpenFilter und ContrastFilter anwenden, um die Lesbarkeit des Barcodes zu verbessern. Im folgenden Codeschnipsel können Sie die Filter auf das Bild anwenden, es lesen und in der Konsole anzeigen.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-apply-filter.cs
using IronBarCode;
using System;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection()
    {
        new SharpenFilter(3.5f),
        new ContrastFilter(2)
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);

// Write the result value to console
foreach (BarcodeResult result in results)
{
    Console.WriteLine(result.Text);
}
Imports IronBarCode
Imports System

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection() From {
		New SharpenFilter(3.5F),
		New ContrastFilter(2)
	}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.png", options)

' Write the result value to console
For Each result As BarcodeResult In results
	Console.WriteLine(result.Text)
Next result
$vbLabelText   $csharpLabel

Aus dem obigen Codeausschnitt geht hervor, dass wir neben der Anwendung von Filtern und dem Lesen des Strichcodes auch das gefilterte Bild auf die Festplatte exportiert haben. Der Vergleich zwischen dem Muster und den gefilterten Bildern ist unten zu sehen.

Sample image
Gefilterte Sonde

Bildkorrekturfilter erkunden

IronBarcode bietet mehrere Bildfilter, die speziell für die Bildkorrektur entwickelt wurden. Diese Filter können beim Lesen unvollkommener Barcode-Bilder helfen und die Lesegenauigkeit verbessern. Die Benutzer müssen jedoch verstehen, wie diese Filter funktionieren, um

Wählen Sie den geeigneten Filter aus und vermeiden Sie Leistungsprobleme aufgrund der Verwendung zu vieler Filter oder falscher Filter. Nachfolgend finden Sie alle verfügbaren Filter:

  • AdaptiveThresholdFilter
  • BinaryThresholdFilter
  • HelligkeitsFilter
  • ContrastFilter
  • InvertFilter
  • SharpenFilter
  • Unschärfe-Filter

    • GaussianBlurFilter

    • Bilateralfilter

    • MedianBlurFilter

    Die Reihenfolge, in der diese Filter angewendet werden, basiert auf ihrer Platzierung innerhalb der ImageFilterCollection.

Adaptiver Schwellenwertfilter

AdaptiveThresholdFilter ist einer der in IronBarcode verfügbaren Filter, der die Bradley Adaptive Threshold-Technik auf das Bild anwendet, die automatisch den Schwellenwert zur Binarisierung eines Bildes bestimmt. Dieser Filter ist ideal für Bilder mit ungleichmäßiger Beleuchtung und unterschiedlicher Hintergrundintensität.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-adaptive-threshold.cs
using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new AdaptiveThresholdFilter(0.9f),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);

// Export file to disk
results.ExportFilterImagesToDisk("adaptiveThreshold_0.9.png");
Imports IronBarCode

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New AdaptiveThresholdFilter(0.9F)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.png", options)

' Export file to disk
results.ExportFilterImagesToDisk("adaptiveThreshold_0.9.png")
$vbLabelText   $csharpLabel

Nachfolgend sind die Ergebnisse der Anwendung des Filters mit verschiedenen Werten dargestellt.

Default Adaptive Threshold
0,9 Adaptiver Schwellenwert

Der Konstruktor akzeptiert auch zusätzliche Parameter für die Konfiguration:

  • Oben: Oben (weiß) Farbe für die Schwellenwertbildung.
  • Unter: Untere (schwarze) Farbe für die Schwellenwertbestimmung.
  • Schwellenwert: Schwellenwertbegrenzung (0,0-1,0) zur Berücksichtigung bei der Binarisierung.
  • Rechteck: Rechteckiger Bereich, auf den der Prozessor angewendet werden soll.

    Wie im obigen Ausgabebild zu sehen ist, wird das Bild binarisiert, um nur noch schwarz und weiß als Farben zu haben. Für das Lesen von Strichcodes scheint es jedoch noch nicht ideal zu sein, da Filter in Kombination verwendet werden müssen. Die Benutzer müssen mit der Empfindlichkeit der Parameter experimentieren, um die besten Ergebnisse zu erzielen.

Binärer Schwellenwertfilter

Der BinaryThresholdFilter filtert ein Bild, indem er die Pixel bei dem angegebenen Schwellenwert aufteilt, wobei er zur Vergleichung der Leuchtdichte einer Farbkomponente verwendet wird. Ähnlich wie der AdaptiveThresholdFilter kann dieser Filter neues oder unerwünschtes Rauschen einbringen, wenn er nicht korrekt verwendet wird. IronBarcode hat jedoch Standardwerte für die Eigenschaften des Filters festgelegt.

Ähnlich wie der AdaptiveThresholdFilter akzeptiert der BinaryThresholdFilter die gleichen zusätzlichen Parameter zur Konfiguration.

  • Oben: Oben (weiß) Farbe für die Schwellenwertbildung.
  • Unter: Untere (schwarze) Farbe für die Schwellenwertbestimmung.
  • Schwellenwert: Schwellenwertbegrenzung (0,0-1,0) zur Berücksichtigung bei der Binarisierung.
  • Rechteck: Rechteckiger Bereich, auf den der Prozessor angewendet werden soll.
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-binary-threshold.cs
using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new BinaryThresholdFilter(0.9f)
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);

// Export file to disk
results.ExportFilterImagesToDisk("binaryThreshold_0.9.png");
Imports IronBarCode

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New BinaryThresholdFilter(0.9F)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.png", options)

' Export file to disk
results.ExportFilterImagesToDisk("binaryThreshold_0.9.png")
$vbLabelText   $csharpLabel

Nachfolgend sehen Sie ein Beispiel für die Anwendung von Filtern auf das Beispielbild.

Standard-Binärschwelle
0.9 Binärer Schwellenwert

Wenn man sich das obige Ausgabebild ansieht, kann man erkennen, dass die Probe in Schwarz und Weiß binarisiert wurde. Es ist jedoch zu erkennen, dass dieser Filter für dieses Bild eindeutig ungeeignet ist, da die Striche des Barcodes entfernt wurden und neues Rauschen hinzukam.

Helligkeitsfilter

BrightnessFilter ist ein weiteres wichtiges Filter in der Bildfilter-Sammlung von IronBarcode. Wie der Name schon sagt, passt dieser Filter die Helligkeit des Barcode-Bildes an. Der Eingabewert für diesen Konstruktor kann die Helligkeit des Ausgabebildes variieren. Der Standardwert ist 1, wodurch das Bild unverändert bleibt. Bei einem Wert von 0 wird ein komplett schwarzes Bild erzeugt, während Werte über 1 das Bild heller machen.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-brightness.cs
using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new BrightnessFilter(1.5f),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);

// Export file to disk
results.ExportFilterImagesToDisk("brightness_1.5.png");
Imports IronBarCode

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New BrightnessFilter(1.5F)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.png", options)

' Export file to disk
results.ExportFilterImagesToDisk("brightness_1.5.png")
$vbLabelText   $csharpLabel

Nachfolgend sehen Sie das Ausgabebild nach Anwendung dieses Filters auf das Eingabebeispiel.

Default Brightness
1,5 Helligkeit

Kontrast-Filter

Der ContrastFilter wird verwendet, um den Kontrastpegel eines Bildes anzupassen. Der Bildkontrast bezieht sich auf den Unterschied in der Farbintensität zwischen verschiedenen Elementen eines Bildes. Eine Erhöhung des Kontrasts verbessert die Sichtbarkeit von Details und lässt das Bild lebendig und eindrucksvoll erscheinen, während eine Verringerung des Kontrasts das Bild weicher und gedämpfter erscheinen lässt.

Der Standardwert ist 1, wodurch das Bild unverändert bleibt. Bei einem Wert von 0 wird ein vollständig graues Bild erzeugt, während Werte über 1 den Bildkontrast erhöhen.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-contrast.cs
using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new ContrastFilter(1.5f),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);

// Export file to disk
results.ExportFilterImagesToDisk("contrast_1.5.png");
Imports IronBarCode

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New ContrastFilter(1.5F)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.png", options)

' Export file to disk
results.ExportFilterImagesToDisk("contrast_1.5.png")
$vbLabelText   $csharpLabel

Die Anwendung dieses Filters auf das Eingabebeispiel ergibt das folgende Bild.

Default Contrast
1,5 Kontrast

Filter invertieren

Dieser Filter wird verwendet, um die Farben innerhalb eines Bildes zu invertieren, d. h., Weiß wird zu Schwarz und Schwarz zu Weiß. Er ist besonders nützlich, wenn Benutzer versuchen, ein Barcode-Bild mit einer Hintergrundfarbe zu lesen. Im Gegensatz zum BinaryThresholdFilter kehrt dieser Filter die Farben direkt um, ohne dass eine Empfindlichkeit angegeben werden muss. Darüber hinaus kann dieser Filter in Verbindung mit einem CropRectangle verwendet werden, um den Bereich im Bild anzugeben, bei dem die Farbe invertiert werden soll, anstatt die Farben des gesamten Bildes zu invertieren.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-invert.cs
using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new InvertFilter(),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);

// Export file to disk
results.ExportFilterImagesToDisk("invert.png");
Imports IronBarCode

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New InvertFilter()}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.png", options)

' Export file to disk
results.ExportFilterImagesToDisk("invert.png")
$vbLabelText   $csharpLabel

Das nachstehende Ausgabebild ist das Ergebnis der Anwendung dieses Filters auf das Beispiel-Eingabebild.

Original image
Umgekehrt

Filter schärfen

Der letzte Bildkorrekturfilter in IronBarcode ist der SharpenFilter. Dieser Filter verbessert die Schärfe eines Bildes und ist sehr nützlich bei unscharfen Bildern. Benutzer können diesen Filter anpassen, um die Schärfe eines Bildes zu verändern, indem sie den Sigma-Wert bei der Instanziierung des Filterobjekts anpassen. Der Standardwert ist 3. Erhöhen Sie die Sigma-Werte, um die Bildschärfe zu verbessern.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-sharpen.cs
using IronBarCode;
using System;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new SharpenFilter(0.5f),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);

// Export file to disk
results.ExportFilterImagesToDisk("sharpen_0.5.png");
Imports IronBarCode
Imports System

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New SharpenFilter(0.5F)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.png", options)

' Export file to disk
results.ExportFilterImagesToDisk("sharpen_0.5.png")
$vbLabelText   $csharpLabel

Das untenstehende Bild ist die geschärfte Version des Beispiel-Eingabebildes.

Standard Schärfen
0.5 Schärfen

Vergleicht man das obige Bild mit dem Originalbild, scheint es schärfer zu sein und würde definitiv beim Lesen von Barcodes mit IronBarcode helfen. In den meisten Fällen wird SharpenFilter immer zusammen mit anderen Filtern in der ImageFilterCollection-Klasse angewendet.

Unschärfe-Filter

GaussianBlur-Filter

Der GaussianBlurFilter wird verwendet, um einen Gaußschen Weichzeichner auf ein Bild anzuwenden. Dieser Filter wird häufig verwendet, um Bildrauschen zu reduzieren.

Der Filter funktioniert, indem er die benachbarten Pixelwerte im Bild mit einer Gauß-Funktion mittelt. Die Methode beruht auf zwei anpassbaren Faktoren:

  • Kernel: eine Matrix, die zur Mittelung der Pixel verwendet wird.
  • Sigma: ein Wert, der die Intensität der Unschärfe steuert.

    Die Standardkerngröße beträgt 3x3 Pixel und der Standardwert für Sigma ist 3,0, was einen mäßigen Unschärfeeffekt erzeugt. Eine Erhöhung des Sigma-Werts führt zu einem stärkeren Unschärfeeffekt. Sie können auch den Kernel anpassen, um die Größe der Nachbarschaft zu steuern, die der Unschärfefilter durchschnittlich berechnet.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-gaussianblur.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new GaussianBlurFilter(3, 3, 3.0f),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sharpen.webp", myOptionsExample);

// Export file to disk
results.ExportFilterImagesToDisk("gaussianBlur.png");
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New GaussianBlurFilter(3, 3, 3.0F)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sharpen.webp", myOptionsExample)

' Export file to disk
results.ExportFilterImagesToDisk("gaussianBlur.png")
$vbLabelText   $csharpLabel

Die Anwendung dieses Filters auf das Eingabebeispiel ergibt das folgende Bild.

Default Sharpen
GaussianBlur-Bild

Bilaterale Filter

Der BilateralFilter wird verwendet, um Bilder zu glätten, während die Kanten erhalten bleiben. Im Gegensatz zu einfachen Unschärfetechniken, die alle Pixel gleichmäßig beeinflussen, berücksichtigt der Bilateralfilter sowohl Farbunterschiede als auch den Pixelabstand, was ihn effektiv für kantenbewahrende Glättung macht.

Die Methode beruht auf drei anpassbaren Faktoren:

  • NeighborhoodDiameter: Gibt den Durchmesser der Pixelnachbarschaft an, die für die Filterung verwendet wird. Ein größerer Durchmesser umfasst mehr umliegende Pixel im Filter. Der Standardwert ist 5.
  • SigmaColor: Dies repräsentiert den Farbeinfluss. Es bestimmt, wie stark der Farbunterschied zwischen benachbarten Pixeln die Filterung beeinflusst. Ein höherer Wert bedeutet, dass Pixel mit unterschiedlichen Farben sich stärker gegenseitig beeinflussen. Der Standardwert ist 75,0.
  • SigmaSpace: Dies stellt den räumlichen Einfluss dar. Es bestimmt, wie stark der Abstand zwischen den Pixeln die Filterung beeinflusst. Ein höherer Wert bedeutet, dass weiter auseinanderliegende Pixel einander stärker beeinflussen werden. Der Standardwert ist 75,0.
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-bilateral.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new BilateralFilter(5, 75, 75),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sharpen.webp", myOptionsExample);

// Export file to disk
results.ExportFilterImagesToDisk("bilateral.png");
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New BilateralFilter(5, 75, 75)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sharpen.webp", myOptionsExample)

' Export file to disk
results.ExportFilterImagesToDisk("bilateral.png")
$vbLabelText   $csharpLabel

Die Anwendung dieses Filters auf das Eingabebeispiel ergibt das folgende Bild.

Default Sharpen
Bilaterales Bild

MedianBlur-Filter

Der MedianBlurFilter ist ein Filter, der zur Rauschreduzierung in einem Bild verwendet wird, indem der Wert jedes Pixels durch den Medianwert der umgebenden Pixel ersetzt wird. Dieser Filter ist besonders effektiv beim Erhalt von Kanten, während er Rauschen entfernt.

  • Kernelgröße: Definiert die Größe der Nachbarschaft um jedes Pixel, die zur Berechnung des Medians verwendet wird. Der Wert muss eine ungerade Zahl größer als 0 sein. Der Standardwert ist 5.
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-medianblur.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new MedianBlurFilter(5),
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sharpen.webp", myOptionsExample);

// Export file to disk
results.ExportFilterImagesToDisk("medianBlur.png");
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {New MedianBlurFilter(5)}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sharpen.webp", myOptionsExample)

' Export file to disk
results.ExportFilterImagesToDisk("medianBlur.png")
$vbLabelText   $csharpLabel

Die Anwendung dieses Filters auf das Eingabebeispiel ergibt das folgende Bild.

Default Sharpen
MedianBlur-Image

Iterationen speichern

Wenn mehrere Filter auf den Barcode angewendet werden, kann es schwierig sein, das Ergebnis nach jeder Filtermethode zu sehen. Diese Funktion ermöglicht das Speichern des gefilterten Bildes nach jeder Anwendung eines Filters, in der Reihenfolge, in der sie verarbeitet werden. Um diese Funktion zu aktivieren, übergeben Sie zunächst true an den ImageFilterCollection-Konstruktor. Verwenden Sie dann die Methode ExportFilterImagesToDisk, um den Pfad und den Namen für die Ausgabebilder anzugeben.

:path=/static-assets/barcode/content-code-examples/how-to/image-correction-save-iterations.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection(true) {
        new SharpenFilter(3.5f),
        new AdaptiveThresholdFilter(0.5f),
        new ContrastFilter(2)
    },
};

// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.webp", myOptionsExample);

// Export file to disk
results.ExportFilterImagesToDisk("filteredImage.png");
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection(True) From {
		New SharpenFilter(3.5F),
		New AdaptiveThresholdFilter(0.5F),
		New ContrastFilter(2)
	}
}

' Apply options and read the barcode
Private results As BarcodeResults = BarcodeReader.Read("sample.webp", myOptionsExample)

' Export file to disk
results.ExportFilterImagesToDisk("filteredImage.png")
$vbLabelText   $csharpLabel

Die Filter werden in der Reihenfolge des Codes angewendet, und die Ausgabebilder spiegeln die Ergebnisse jeder Iteration wider.

  • Schärfen -> Nach dem Schärfen
  • Schärfen + Adaptiver Schwellenwert -> Nach adaptivem Schwellenwert
  • Schärfen + Adaptiver Schwellenwert + Kontrast -> Nach Kontrast
    Sample image
    1,5 Kontrast
    Sample image
    1,5 Kontrast

    Abgesehen von den ImageFilters-Eigenschaften können Benutzer auch andere Eigenschaften in BarcodeReaderOptions für eine genauere Erkennung hinzufügen. Weitere Informationen finden Sie in diesem Artikel.

Hairil related to Iterationen speichern
Software-Ingenieur
Wie alle großartigen Ingenieure ist Hairil ein eifriger Lerner. Er verfeinert seine Kenntnisse in C#, Python und Java und nutzt dieses Wissen, um den Teammitgliedern von Iron Software einen Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia zum Iron Software-Team, wo er einen Bachelor-Abschluss in Chemie- und Verfahrenstechnik erwarb.