# Utilisation des filtres de correction d'image de C# pour améliorer le décodage des codes-barres
[IronBarcode](https://ironsoftware.com/csharp/barcode/docs/) fournit des filtres de correction d'images intégrés tels que `SharpenFilter` et `ContrastFilter` qui améliorent de manière programmatique les images de codes-barres floues ou imparfaites, améliorant la précision de lecture sans avoir besoin de logiciel de retouche d'image externe ou de reprendre des images.
Toutes les images ne sont pas parfaites, et une mauvaise qualité d'image est l'un des **principaux facteurs** empêchant une lecture réussie des codes-barres dans IronBarcode. Plutôt que de recapturer des images ou d'utiliser un logiciel d'amélioration d'image externe, IronBarcode fournit des filtres intégrés qui améliorent de manière programmatique la qualité de l'image. Ces filtres aident IronBarcode à lire les images difficiles et à améliorer la précision globale.
Continuez à lire pour en savoir plus sur les filtres de correction d'image disponibles dans IronBarcode, leurs effets sur les images et comment les appliquer. Pour des techniques de lecture de codes-barres plus complètes, consultez notre [Tutoriel de lecture de codes-barres](https://ironsoftware.com/csharp/barcode/tutorials/reading-barcodes/).
*as-heading:2(Démarrage rapide : Appliquer des filtres de netteté et de contraste pour améliorer les lectures de codes-barres)*
En une seule étape, appliquez `SharpenFilter` et `ContrastFilter` d'IronBarcode en utilisant `ImageFilterCollection` dans `BarcodeReaderOptions`. Cela améliore la lecture des codes-barres avec une configuration minimale et zéro besoin d'outils externes.
```cs
:title=Boost Barcode Readability — Try Image Correction Now
BarcodeResults results = IronBarCode.BarcodeReader.Read("input.png", new IronBarCode.BarcodeReaderOptions { ImageFilters = new IronBarCode.ImageFilterCollection() { new IronBarCode.SharpenFilter(3.5f), new IronBarCode.ContrastFilter(2.0f) } });
```
<div class="hsg-featured-snippet">
<h3>Flux de travail minimal (5 étapes)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://www.nuget.org/packages/BarCode/">Téléchargez la bibliothèque C# pour utiliser les filtres de correction d'image</a></li>
<li>Explorez tous les filtres de correction d'image disponibles</li>
<li>Configurer chaque filtre avec des valeurs personnalisées</li>
<li>Appliquer des filtres à des échantillons d'images imparfaites</li>
<li>Récupérer les valeurs des codes-barres à partir d'images améliorées</li>
</ol>
</div>
## Comment appliquer des filtres d'image pour améliorer la lecture des BarCodes?
Pour appliquer des filtres, instanciez la classe `ImageFilterCollection` et créez des instances de chaque filtre individuellement. Ensuite, assignez l'objet à la propriété `ImageFilters` de l'objet `BarcodeReaderOptions`. Passez l'objet d'options dans la méthode `Read` avec l'image d'exemple. Pour les options d'installation avancées, consultez notre [guide des packages NuGet](https://ironsoftware.com/csharp/barcode/get-started/advanced-installation-nuget/).
Utilisez l'image ci-dessous comme exemple d'image.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Code-barres flou avec le numéro 4900203187590 montrant une mauvaise qualité d'image avant l'amélioration par filtrage" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic; margin-bottom: 20px;">Exemple d'image</p>
</div>
</div>
L'image semble assez floue. Cependant, la luminosité est acceptable, et les couleurs blanche et noire sont distinguables. Par conséquent, appliquez au moins `SharpenFilter` et `ContrastFilter` pour améliorer la lisibilité des codes-barres. Reportez-vous à l'extrait de code ci-dessous pour appliquer des filtres à l'image, la lire et afficher les résultats sur la console.
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-apply-filter.cs
```
L'extrait de code ci-dessus applique des filtres, lit le BarCode et exporte l'image filtrée sur le disque. La comparaison entre l'échantillon et les images filtrées est présentée ci-dessous.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Image de code-barres flou avec le numéro 4902030187590 illustrant une mauvaise qualité d'image" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Exemple d'image</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/filteredSample.webp" alt="Code-barres à la lisibilité améliorée après application de filtres d'image, montrant des lignes verticales nettes et le numéro 4902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Échantillon filtré</p>
</div>
</div>
## Quels sont les filtres de correction d'image disponibles dans IronBarcode?
IronBarcode propose plusieurs [filtres d'image](https://ironsoftware.com/csharp/barcode/features/filters/) spécifiquement conçus pour la correction d'image. Ces filtres aident à la lecture d'images de codes-barres imparfaites et à l'amélioration de la précision de la lecture. Cependant, il faut comprendre le fonctionnement de ces filtres pour **sélectionner les filtres appropriés** et **éviter les problèmes de performance** dus à l'utilisation d'un trop grand nombre de filtres ou à l'utilisation d'un filtre inadéquat. Les filtres disponibles sont les suivants :
- `AdaptiveThresholdFilter`
- `BinaryThresholdFilter`
- `BrightnessFilter`
- `ContrastFilter`
- `InvertFilter`
- `SharpenFilter`
- `ErodeFilter`
- `DilateFilter`
- `HistogramEqualizationFilter`
- Blur Filters
- `GaussianBlurFilter`
- `BilateralFilter`
- `MedianBlurFilter`
L'ordre d'application des filtres est basé sur leur emplacement à l'intérieur de `ImageFilterCollection`. Pour obtenir une documentation API détaillée sur ces filtres, consultez notre [référence API](https://ironsoftware.com/csharp/barcode/object-reference/api/).
## Comment fonctionne le filtre à seuil adaptatif?
`AdaptiveThresholdFilter` est un filtre disponible dans IronBarcode qui applique la technique [Bradley Adaptive Threshold](https://saturncloud.io/blog/bradley-adaptive-thresholding-algorithm-a-powerful-tool-for-image-segmentation/#:~:text=The%20Bradley%20adaptive%20thresholding%20algorithm%2C%20proposed%20by%20Derek%20Bradley%20and,illumination%20or%20varying%20contrast%20levels.) à l'image, qui détermine automatiquement le seuil pour binariser une image. Ce filtre est idéal pour les images avec un éclairage non uniforme et des niveaux d'intensité de fond variables.
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-adaptive-threshold.cs
```
Ci-dessous sont les résultats de l'application du filtre en utilisant différentes valeurs.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/adaptiveThreshold.webp" alt="Lignes verticales montrant différentes sorties du filtre de seuil adaptatif avec des motifs pleins et en pointillés" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur par défaut</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/adaptiveThreshold_0.9.webp" alt="Image de code-barres de faible qualité montrant le numéro UPC 902030187590 avec une distorsion visuelle importante" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur 0,9</p>
</div>
</div>
Le constructeur accepte des paramètres supplémentaires pour la configuration :
- `Upper` : Couleur supérieure (blanche) pour le seuillage.
- `Lower` : Couleur inférieure (noire) pour le seuillage.
- `Threshold` : Limite de seuil (0.0-1.0) pour la binarisation.
- `Rectangle` : Région rectangulaire pour appliquer le processeur.
Comme le montre l'image de sortie ci-dessus, l'image est binarisée pour n'avoir que les couleurs **noir** et **blanc**. Bien que cela ne semble toujours pas idéal pour la lecture de codes-barres, les filtres doivent être utilisés dans des combinaisons. Expérimentez la sensibilité des paramètres pour obtenir les meilleurs résultats.
## Comment fonctionne le filtre à seuil binaire?
Le `BinaryThresholdFilter` filtre une image en divisant les pixels à partir du seuil donné, en comparant la luminance d'un composant de couleur. Similaire au `AdaptiveThresholdFilter`, ce filtre peut introduire un bruit nouveau ou indésirable s'il n'est pas utilisé correctement. Cependant, IronBarcode a défini des valeurs par défaut pour les propriétés du filtre.
Similaire au `AdaptiveThresholdFilter`, le `BinaryThresholdFilter` accepte les mêmes paramètres supplémentaires pour la configuration :
- `Upper` : Couleur supérieure (blanche) pour le seuillage.
- `Lower` : Couleur inférieure (noire) pour le seuillage.
- `Threshold` : Limite de seuil (0.0-1.0) pour la binarisation.
- `Rectangle` : Région rectangulaire pour appliquer le processeur.
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-binary-threshold.cs
```
Ci-dessous est l'exemple de sortie de l'application des filtres à l'image d'exemple.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/binaryThreshold.webp" alt="Trois exemples de sorties du filtre de seuil binaire montrant des motifs de lignes verticales clairsemées, pointillées et denses" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur par défaut</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/binaryThreshold_0.9.webp" alt="Image de code-barres traitée avec un filtre de seuil binaire de 0,9 montrant un contraste noir et blanc" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur 0,9</p>
</div>
</div>
En observant l'image de sortie ci-dessus, l'échantillon a été binarisé en noir et blanc. Cependant, ce filtre n'est manifestement pas adapté à cette image en raison de l'élimination des barres du code-barres et de l'introduction de nouveaux bruits. Pour traiter les scénarios de codes-barres difficiles, consultez notre [guide de dépannage pour les codes-barres non reconnus](https://ironsoftware.com/csharp/barcode/troubleshooting/barcode-not-recognized/).
## Comment ajuster la luminosité de l'image pour une meilleure lecture des BarCodes?
`BrightnessFilter` est un autre filtre essentiel dans la collection de filtres d'image dans IronBarcode. Comme son nom l'indique, ce filtre ajuste la luminosité de l'image de code-barres. L'entrée de ce constructeur fait varier la **Montée** de la luminosité dans l'image de sortie. La valeur par défaut est 1, ce qui laisse l'image inchangée. Une valeur de 0 crée une image complètement noire, tandis que des valeurs supérieures à 1 rendent l'image plus lumineuse.
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-brightness.cs
```
Ci-dessous l'image de sortie après application de ce filtre à l'entrée d'exemple.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Blurry UPC barcode sample showing default brightness level before filter enhancement" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur par défaut</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/brightness_1.5.webp" alt="Code-barres flou avec le numéro de produit 4902030187590, illustrant une faible luminosité ou une mauvaise qualité d'image" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur 1,5</p>
</div>
</div>
## Comment utiliser le filtre de contraste pour améliorer les images de BarCode?
Le `ContrastFilter` ajuste le niveau de contraste dans une image. Le contraste d'image se réfère à la différence d'intensité de couleur entre divers éléments d'une image. Augmenter le niveau de contraste améliore la visibilité des détails, rendant l'image plus vive et frappante, tandis que réduire le contraste rend l'image plus douce et plus atténuée. Pour plus de détails sur la personnalisation des codes-barres, consultez notre guide sur [la personnalisation des styles de codes-barres](https://ironsoftware.com/csharp/barcode/how-to/customize-barcode-style/).
La valeur par défaut est 1, ce qui laisse l'image inchangée. Une valeur de 0 crée une image entièrement grise, tandis que les valeurs supérieures à 1 augmentent le contraste de l'image.
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-contrast.cs
```
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Code-barres flou avec le numéro 4902030187590 illustrant les réglages par défaut du filtre de contraste" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur par défaut</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/contrast_1.5.webp" alt="Code-barres flou avec le numéro 4902030187590 illustrant une image de faible contraste" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur 1,5</p>
</div>
</div>
## Quand utiliser le filtre d'inversion?
Ce filtre inverse les couleurs à l'intérieur d'une image, rendant les couleurs opposées, comme le blanc devient noir et le noir devient blanc. Il est particulièrement utile lors de la lecture d'une image de code-barres avec une couleur de fond. Contrairement au `BinaryThresholdFilter`, ce filtre inverse les couleurs directement sans avoir besoin de spécifier la sensibilité. En outre, ce filtre peut être utilisé avec un **CropRectangle** pour spécifier l'endroit de l'image dont la couleur doit être inversée, au lieu d'inverser les couleurs pour l'ensemble de l'image. Pour en savoir plus sur la spécification des régions de culture, consultez notre [tutoriel sur les régions de culture](https://ironsoftware.com/csharp/barcode/how-to/set-crop-region/).
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-invert.cs
```
L'image de sortie ci-dessous est le résultat de l'application de ce filtre à l'image d'entrée de l'échantillon.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Code-barres UPC flou montrant le numéro 480203187590 - image originale avant l'application du filtre d'inversion" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Image originale</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/invert.webp" alt="Code-barres inversé flou montrant des barres blanches sur fond sombre avec la séquence numérique 4902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Inversé</p>
</div>
</div>
## Comment réparer des images de BarCode floues avec le filtre Sharpen?
IronBarcode fournit un filtre de netteté. Ce filtre améliore la netteté d'une image, ce qui est très utile lorsqu'il s'agit d'images floues. Manipulez ce filtre pour ajuster la netteté d'une image en ajustant la valeur **Sigma** lors de l'instanciation de l'objet filtre. La valeur par défaut est 3. Augmentez la valeur sigma pour augmenter la netteté de l'image. Pour d'autres options d'optimisation des performances, consultez notre guide sur les [options de vitesse de lecture](https://ironsoftware.com/csharp/barcode/how-to/reading-speed-options/).
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-sharpen.cs
```
L'image ci-dessous est la version "affinée" de l'échantillon d'image d'entrée.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sharpen.webp" alt="Image de code-barres flou illustrant une qualité non nette avant l'application du filtre de netteté" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur par défaut</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sharpen_0.5.webp" alt="Exemple de code-barres flou montrant les effets de la dégradation de la qualité d'image" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">valeur 0,5</p>
</div>
</div>
Si l'on compare l'image ci-dessus avec l'image originale, elle apparaît plus nette et facilite la lecture des codes-barres à l'aide d'IronBarcode. Dans la plupart des cas, `SharpenFilter` est toujours appliqué en conjonction avec d'autres filtres dans la classe `ImageFilterCollection`.
## À quoi sert le filtre Erode?
Le `ErodeFilter` élimine les petits bruit blancs et épaissit les barres de code-barres en supprimant les pixels près du bord des formes. Ce filtre est mieux utilisé dans des scénarios où le fond du code-barres a beaucoup de taches blanches ou si l'image du code-barres est trop basse résolution ou floue, entraînant la fusion des barres. Le `ErodeFilter` rend les barres plus épaisses tout en supprimant les taches blanches en arrière-plan. Pour plus d'informations sur le traitement des images imparfaites, consultez notre [exemple de code-barres imparfait](https://ironsoftware.com/csharp/barcode/examples/imperfect-barcode-with-image-correction/).
Augmentez l'effet d'érosion en entrant un entier représentant `kernelSize` pour le filtre. Plus la taille du noyau est grande, plus l'effet sur l'image d'entrée est fort. Notez que le `kernelSize` est un carré et dans cet exemple serait un noyau `5x5`.
À titre d'exemple, utilisez `ErodeFilter` avec une taille de noyau plus grande pour illustrer les effets du filtre.
```cs
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-erode.cs
```
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 46%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Code-barres flou montrant le numéro 4002030187590 - exemple pour la démonstration du filtre d'érosion" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Image originale</p>
</div>
<div class="competitors__card" style="width: 46%;">
<img src="/static-assets/barcode/how-to/image-correction/erodeFilter.webp" alt="Code-barres flou montrant des bandes verticales noires et blanches avec un code numérique" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Filtre d'érosion appliqué</p>
</div>
</div>
Si l'on compare les images d'entrée et de sortie ci-dessus, certaines barres sont visiblement plus épaisses en raison de la nature plus agressive de l'entrée d'une taille de noyau plus importante pour le filtrage. Cependant, le nombre de taches blanches dans l'image globale a diminué. Par la nature du filtre d'érosion, plus la taille du noyau est grande, plus vous risquez d'effacer les barres fines si vous l'appliquez de manière trop agressive, comme le montre l'image ci-dessus. Testez et affinez l'effet en modifiant la valeur de la taille de noyau entrée dans `ErodeFilter`.
## Comment le filtre Dilate aide-t-il à la lecture des codes-barres?
Le `DilateFilter` fonctionne comme l'inverse du `ErodeFilter`, opérant en élargissant les régions lumineuses—habituellement l'arrière-plan—par l'ajout de pixels aux contours des objets. Bien que ce filtre répare les codes-barres endommagés ou pâles en comblant les petites lacunes ou en améliorant les zones à faible contraste, notez que son effet sur les barres de codes-barres diffère de l'intuition. Étant donné que la dilatation agrandit les espaces clairs, elle amincit indirectement les éléments sombres tels que les barres noires des codes-barres (en supposant un fond blanc). Cela rend le filtre particulièrement efficace dans les scénarios où les barres de code-barres semblent trop épaisses ou fusionnées, mais une utilisation excessive peut dégrader la précision de numérisation en rétrécissant de manière excessive les barres.
Similaire à ci-dessus, augmentez l'effet du filtre en entrant un entier représentant `kernelSize` pour le filtre.
Pour l'exemple ci-dessous, utilisez une taille de noyau plus grande pour illustrer les effets de `DilateFilter`.
```cs
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-dilate.cs
```
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 46%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Image de code-barres flou montrant le numéro 4902030187590 - exemple pour le traitement par filtre de dilatation" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Image originale</p>
</div>
<div class="competitors__card" style="width: 46%;">
<img src="/static-assets/barcode/how-to/image-correction/dilateFilter.webp" alt="Code-barres flou avec une séquence numérique sous les barres verticales" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Filtre de dilatation appliqué</p>
</div>
</div>
Comme montré dans l'image ci-dessus, une utilisation agressive de `DilateFilter` peut potentiellement détruire la structure du code-barres, fusionnant des barres rapprochées et créant des zones calmes dans les codes-barres. Testez et affinez les effets sur l'image en modifiant la valeur de la taille du noyau pour qu'elle soit plus grande ou plus petite, en fonction de l'image d'entrée.
## Quand utiliser le filtre d'égalisation d'histogramme?
Le `HistogramEqualizationFilter` améliore le contraste de l'image en redistribuant les intensités des pixels pour améliorer la clarté. Elle est le plus souvent utilisée lorsque le code-barres présente soit un faible contraste, comme des images décolorées ou délavées, soit des images avec un éclairage inégal, comme des ombres sombres ou des éblouissements lumineux. En analysant l'histogramme de l'image, qui est la distribution de la luminosité des pixels, il redistribue les valeurs de pixels en augmentant le contraste en étirant la plage d'intensité, où les pixels sombres deviennent plus sombres et les pixels clairs deviennent plus clairs.
```cs
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-histogram-equalization-filter.cs
```
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 46%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Code-barres flou avec le numéro 4902030187590 utilisé comme image de test pour le filtre d'égalisation d'histogramme" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Image originale</p>
</div>
<div class="competitors__card" style="width: 46%;">
<img src="/static-assets/barcode/how-to/image-correction/histogramEqualizationFilter.webp" alt="Code-barres à bandes verticales noires et blanches montrant le numéro 4902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Filtre d'égalisation d'histogramme appliqué</p>
</div>
</div>
Comme le montre l'image ci-dessus, les barres noires sont visiblement plus foncées et les espaces sont visiblement plus clairs par rapport à l'image originale.
## Quels filtres de flou peuvent aider à la réduction du bruit des BarCodes?
### Comment le filtre GaussianBlur réduit-il le bruit des images ?
Le `GaussianBlurFilter` applique un flou gaussien à une image. Ce filtre réduit généralement le bruit dans une image. Pour un guide complet sur le traitement des codes-barres imparfaits, consultez notre [tutoriel de correction de l'orientation de l'image](https://ironsoftware.com/csharp/barcode/how-to/image-orientation-correction/).
Le filtre fonctionne en moyennant les valeurs de pixels voisins dans l'image à l'aide d'une fonction gaussienne. La méthode repose sur deux facteurs ajustables :
- **Noyau** : une matrice utilisée pour moyenniser les pixels.
- **Sigma** : une valeur qui contrôle l'intensité du flou.
La taille par défaut pour `kernel` est `3x3` pixels, et la valeur par défaut `Sigma` est `3.0`, produisant un flou modéré. Augmenter la valeur `Sigma` pour un effet de flou plus fort. Vous pouvez également personnaliser `kernel` pour contrôler la taille du voisinage que le filtre de flou moyenne.
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-gaussianblur.cs
```
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sharpen.webp" alt="Code-barres flou avec le numéro 4902030187590 illustrant une mauvaise qualité d'image" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Accentuer la netteté de l'image</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/gaussianBlur.webp" alt="Image de code-barres avec un filtre de flou gaussien appliqué, montrant des lignes verticales floues et des chiffres déformés" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Image floue gaussienne</p>
</div>
</div>
### Quand utiliser le filtre bilatéral?
Le `BilateralFilter` lisse les images tout en préservant les bords. Contrairement aux techniques de flou simple qui affectent tous les pixels de manière uniforme, le filtre bilatéral prend en compte les différences de couleur et la distance entre les pixels, ce qui le rend efficace pour le lissage préservant les contours.
La méthode repose sur trois facteurs ajustables :
- `NeighborhoodDiameter` : Diamètre du voisinage de pixels (par défaut : 5).
- `SigmaColor` : Influence des couleurs déterminant l'impact de la différence de couleur (par défaut : 75.0).
- `SigmaSpace` : Influence spatiale déterminant l'impact de la distance (par défaut : 75.0).
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-bilateral.cs
```
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sharpen.webp" alt="Code-barres flou illustrant une mauvaise qualité d'image avec des lignes verticales et le numéro 4902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Accentuer la netteté de l'image</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/bilateral.webp" alt="Code-barres flou avec le numéro 4902030187590 illustrant une mauvaise qualité d'image" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Image bilatérale</p>
</div>
</div>
### Qu'est-ce qui différencie le filtre MedianBlur pour la réduction du bruit ?
Le `MedianBlurFilter` réduit le bruit dans une image en remplaçant la valeur de chaque pixel par la valeur médiane des pixels environnants. Ce filtre est particulièrement efficace pour préserver les contours tout en supprimant le bruit. Pour en savoir plus sur les paramètres de lecture des codes-barres, consultez notre [guide des paramètres du lecteur de codes-barres](https://ironsoftware.com/csharp/barcode/examples/barcode-reader-settings-csharp/).
- `KernelSize` : Taille du voisinage pour le calcul médian (doit être impair, par défaut : 5).
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-medianblur.cs
```
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sharpen.webp" alt="Exemple de code-barres flou montrant une mauvaise qualité d'image avec des artefacts numériques et une lisibilité réduite" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Accentuer la netteté de l'image</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/medianBlur.webp" alt="Code-barres avec un filtre de flou médian appliqué montrant des lignes verticales floues et le numéro 4902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Image MedianBlur</p>
</div>
</div>
## Comment sauvegarder les images filtrées à chaque étape du traitement?
Lors de l'application de plusieurs filtres au code-barres, la visualisation de la sortie après chaque méthode de filtrage peut s'avérer difficile. Cette fonctionnalité permet de sauvegarder l'image filtrée après chaque application de filtre, dans l'ordre où ils sont traités. Pour activer cette fonctionnalité, passez d'abord `true` au constructeur `ImageFilterCollection`. Ensuite, utilisez la méthode `ExportFilterImagesToDisk` pour fournir le chemin et le nom des images de sortie. Pour plus d'exemples sur l'enregistrement des BarCodes, consultez notre [exemple de conversion de code-barres en image](https://ironsoftware.com/csharp/barcode/examples/csharp-convert-barcode-to-image/).
```csharp
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-save-iterations.cs
```
Les filtres sont appliqués dans l'ordre du code, et les images de sortie reflètent les résultats de chaque itération :
- `Sharpen` -> Après `Sharpen`
- `Sharpen` + `AdaptiveThreshold` -> Après `AdaptiveThreshold`
- `Sharpen` + `AdaptiveThreshold` + `Contrast` -> Après `Contrast`
<div class="competitors-section__wrapper-even-1" style="margin-bottom: 25px;">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/sample.webp" alt="Code-barres flou avec le numéro 4902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Exemple d'image</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/filteredImage-1.webp" alt="Blurry UPC barcode showing number 4902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Après avoir affûté</p>
</div>
</div>
<div class="competitors-section__wrapper-even-1">
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/filteredImage-2.webp" alt="Exemple de code-barres dégradé montrant une mauvaise qualité d'image avec le numéro 9020301875905" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Après le seuil adaptatif</p>
</div>
<div class="competitors__card" style="width: 48%;">
<img src="/static-assets/barcode/how-to/image-correction/filteredImage-3.webp" alt="Code-barres fortement pixellisé avec le numéro UPC 902030187590" class="img-responsive add-shadow" />
<p class="competitors__download-link" style="color: #181818; font-style: italic;">Après contraste</p>
</div>
</div>
En dehors des propriétés `ImageFilters`, ajoutez d'autres propriétés à `BarcodeReaderOptions` pour une lecture plus précise; voir cet [article](https://ironsoftware.com/csharp/barcode/how-to/read-barcodes-from-images/#setting-barcode-reader-options) pour plus d'informations.
IronBarcode fournit des filtres de correction d'images intégrés tels que SharpenFilter et ContrastFilter qui améliorent de manière programmatique les images de codes-barres floues ou imparfaites, améliorant la précision de lecture sans avoir besoin de logiciel de retouche d'image externe ou de reprendre des images.
Toutes les images ne sont pas parfaites, et une mauvaise qualité d'image est l'un des principaux facteurs empêchant une lecture réussie des codes-barres dans IronBarcode. Plutôt que de recapturer des images ou d'utiliser un logiciel d'amélioration d'image externe, IronBarcode fournit des filtres intégrés qui améliorent de manière programmatique la qualité de l'image. Ces filtres aident IronBarcode à lire les images difficiles et à améliorer la précision globale.
Continuez à lire pour en savoir plus sur les filtres de correction d'image disponibles dans IronBarcode, leurs effets sur les images et comment les appliquer. Pour des techniques de lecture de codes-barres plus complètes, consultez notre Tutoriel de lecture de codes-barres.
Démarrage rapide : Appliquer des filtres de netteté et de contraste pour améliorer les lectures de codes-barres
En une seule étape, appliquez SharpenFilter et ContrastFilter d'IronBarcode en utilisant ImageFilterCollection dans BarcodeReaderOptions. Cela améliore la lecture des codes-barres avec une configuration minimale et zéro besoin d'outils externes.
1Install IronBarcode with NuGet Package Manager
PM > Install-Package BarCode
Install-Package BarCode
2Copiez et exécutez cet extrait de code.
BarcodeResults results = IronBarCode.BarcodeReader.Read("input.png", new IronBarCode.BarcodeReaderOptions { ImageFilters = new IronBarCode.ImageFilterCollection() { new IronBarCode.SharpenFilter(3.5f), new IronBarCode.ContrastFilter(2.0f) } });
BarcodeResults results = IronBarCode.BarcodeReader.Read("input.png", new IronBarCode.BarcodeReaderOptions { ImageFilters = new IronBarCode.ImageFilterCollection() { new IronBarCode.SharpenFilter(3.5f), new IronBarCode.ContrastFilter(2.0f) } });
C#
3Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit
Explorez tous les filtres de correction d'image disponibles
Configurer chaque filtre avec des valeurs personnalisées
Appliquer des filtres à des échantillons d'images imparfaites
Récupérer les valeurs des codes-barres à partir d'images améliorées
Comment appliquer des filtres d'image pour améliorer la lecture des BarCodes?
Pour appliquer des filtres, instanciez la classe ImageFilterCollection et créez des instances de chaque filtre individuellement. Ensuite, assignez l'objet à la propriété ImageFilters de l'objet BarcodeReaderOptions. Passez l'objet d'options dans la méthode Read avec l'image d'exemple. Pour les options d'installation avancées, consultez notre guide des packages NuGet.
Utilisez l'image ci-dessous comme exemple d'image.
Exemple d'image
L'image semble assez floue. Cependant, la luminosité est acceptable, et les couleurs blanche et noire sont distinguables. Par conséquent, appliquez au moins SharpenFilter et ContrastFilter pour améliorer la lisibilité des codes-barres. Reportez-vous à l'extrait de code ci-dessous pour appliquer des filtres à l'image, la lire et afficher les résultats sur la console.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Write the result value to consoleforeach (BarcodeResult result in results){Console.WriteLine(result.Text);}
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);
}
ImportsIronBarCodeImportsSystemPrivate options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection() From { New SharpenFilter(3.5F), New ContrastFilter(2) }}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Write the result value to consoleFor Each result AsBarcodeResultIn resultsConsole.WriteLine(result.Text)Next result
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
L'extrait de code ci-dessus applique des filtres, lit le BarCode et exporte l'image filtrée sur le disque. La comparaison entre l'échantillon et les images filtrées est présentée ci-dessous.
Exemple d'image
Échantillon filtré
Quels sont les filtres de correction d'image disponibles dans IronBarcode?
IronBarcode propose plusieurs filtres d'image spécifiquement conçus pour la correction d'image. Ces filtres aident à la lecture d'images de codes-barres imparfaites et à l'amélioration de la précision de la lecture. Cependant, il faut comprendre le fonctionnement de ces filtres pour sélectionner les filtres appropriés et éviter les problèmes de performance dus à l'utilisation d'un trop grand nombre de filtres ou à l'utilisation d'un filtre inadéquat. Les filtres disponibles sont les suivants :
AdaptiveThresholdFilter
BinaryThresholdFilter
BrightnessFilter
ContrastFilter
InvertFilter
SharpenFilter
ErodeFilter
DilateFilter
HistogramEqualizationFilter
Blur Filters
GaussianBlurFilter
BilateralFilter
MedianBlurFilter
L'ordre d'application des filtres est basé sur leur emplacement à l'intérieur de ImageFilterCollection. Pour obtenir une documentation API détaillée sur ces filtres, consultez notre référence API.
Comment fonctionne le filtre à seuil adaptatif?
AdaptiveThresholdFilter est un filtre disponible dans IronBarcode qui applique la technique Bradley Adaptive Threshold à l'image, qui détermine automatiquement le seuil pour binariser une image. Ce filtre est idéal pour les images avec un éclairage non uniforme et des niveaux d'intensité de fond variables.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("adaptiveThreshold_0.9.png");
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");
ImportsIronBarCodePrivate options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New AdaptiveThresholdFilter(0.9F)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.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")
Ci-dessous sont les résultats de l'application du filtre en utilisant différentes valeurs.
valeur par défaut
valeur 0,9
Le constructeur accepte des paramètres supplémentaires pour la configuration :
Upper : Couleur supérieure (blanche) pour le seuillage.
Lower : Couleur inférieure (noire) pour le seuillage.
Threshold : Limite de seuil (0.0-1.0) pour la binarisation.
Rectangle : Région rectangulaire pour appliquer le processeur.
Comme le montre l'image de sortie ci-dessus, l'image est binarisée pour n'avoir que les couleurs noir et blanc. Bien que cela ne semble toujours pas idéal pour la lecture de codes-barres, les filtres doivent être utilisés dans des combinaisons. Expérimentez la sensibilité des paramètres pour obtenir les meilleurs résultats.
Comment fonctionne le filtre à seuil binaire?
Le BinaryThresholdFilter filtre une image en divisant les pixels à partir du seuil donné, en comparant la luminance d'un composant de couleur. Similaire au AdaptiveThresholdFilter, ce filtre peut introduire un bruit nouveau ou indésirable s'il n'est pas utilisé correctement. Cependant, IronBarcode a défini des valeurs par défaut pour les propriétés du filtre.
Similaire au AdaptiveThresholdFilter, le BinaryThresholdFilter accepte les mêmes paramètres supplémentaires pour la configuration :
Upper : Couleur supérieure (blanche) pour le seuillage.
Lower : Couleur inférieure (noire) pour le seuillage.
Threshold : Limite de seuil (0.0-1.0) pour la binarisation.
Rectangle : Région rectangulaire pour appliquer le processeur.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("binaryThreshold_0.9.png");
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");
ImportsIronBarCodePrivate options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New BinaryThresholdFilter(0.9F)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.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")
Ci-dessous est l'exemple de sortie de l'application des filtres à l'image d'exemple.
valeur par défaut
valeur 0,9
En observant l'image de sortie ci-dessus, l'échantillon a été binarisé en noir et blanc. Cependant, ce filtre n'est manifestement pas adapté à cette image en raison de l'élimination des barres du code-barres et de l'introduction de nouveaux bruits. Pour traiter les scénarios de codes-barres difficiles, consultez notre guide de dépannage pour les codes-barres non reconnus.
Comment ajuster la luminosité de l'image pour une meilleure lecture des BarCodes?
BrightnessFilter est un autre filtre essentiel dans la collection de filtres d'image dans IronBarcode. Comme son nom l'indique, ce filtre ajuste la luminosité de l'image de code-barres. L'entrée de ce constructeur fait varier la Montée de la luminosité dans l'image de sortie. La valeur par défaut est 1, ce qui laisse l'image inchangée. Une valeur de 0 crée une image complètement noire, tandis que des valeurs supérieures à 1 rendent l'image plus lumineuse.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("brightness_1.5.png");
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");
ImportsIronBarCodePrivate options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New BrightnessFilter(1.5F)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.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")
Ci-dessous l'image de sortie après application de ce filtre à l'entrée d'exemple.
valeur par défaut
valeur 1,5
Comment utiliser le filtre de contraste pour améliorer les images de BarCode?
Le ContrastFilter ajuste le niveau de contraste dans une image. Le contraste d'image se réfère à la différence d'intensité de couleur entre divers éléments d'une image. Augmenter le niveau de contraste améliore la visibilité des détails, rendant l'image plus vive et frappante, tandis que réduire le contraste rend l'image plus douce et plus atténuée. Pour plus de détails sur la personnalisation des codes-barres, consultez notre guide sur la personnalisation des styles de codes-barres.
La valeur par défaut est 1, ce qui laisse l'image inchangée. Une valeur de 0 crée une image entièrement grise, tandis que les valeurs supérieures à 1 augmentent le contraste de l'image.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("contrast_1.5.png");
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");
ImportsIronBarCodePrivate options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New ContrastFilter(1.5F)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.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")
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
valeur par défaut
valeur 1,5
Quand utiliser le filtre d'inversion?
Ce filtre inverse les couleurs à l'intérieur d'une image, rendant les couleurs opposées, comme le blanc devient noir et le noir devient blanc. Il est particulièrement utile lors de la lecture d'une image de code-barres avec une couleur de fond. Contrairement au BinaryThresholdFilter, ce filtre inverse les couleurs directement sans avoir besoin de spécifier la sensibilité. En outre, ce filtre peut être utilisé avec un CropRectangle pour spécifier l'endroit de l'image dont la couleur doit être inversée, au lieu d'inverser les couleurs pour l'ensemble de l'image. Pour en savoir plus sur la spécification des régions de culture, consultez notre tutoriel sur les régions de culture.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("invert.png");
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");
ImportsIronBarCodePrivate options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New InvertFilter()}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.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")
L'image de sortie ci-dessous est le résultat de l'application de ce filtre à l'image d'entrée de l'échantillon.
Image originale
Inversé
Comment réparer des images de BarCode floues avec le filtre Sharpen?
IronBarcode fournit un filtre de netteté. Ce filtre améliore la netteté d'une image, ce qui est très utile lorsqu'il s'agit d'images floues. Manipulez ce filtre pour ajuster la netteté d'une image en ajustant la valeur Sigma lors de l'instanciation de l'objet filtre. La valeur par défaut est 3. Augmentez la valeur sigma pour augmenter la netteté de l'image. Pour d'autres options d'optimisation des performances, consultez notre guide sur les options de vitesse de lecture.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("sharpen_0.5.png");
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");
ImportsIronBarCodeImportsSystemPrivate options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New SharpenFilter(0.5F)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.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")
L'image ci-dessous est la version "affinée" de l'échantillon d'image d'entrée.
valeur par défaut
valeur 0,5
Si l'on compare l'image ci-dessus avec l'image originale, elle apparaît plus nette et facilite la lecture des codes-barres à l'aide d'IronBarcode. Dans la plupart des cas, SharpenFilter est toujours appliqué en conjonction avec d'autres filtres dans la classe ImageFilterCollection.
À quoi sert le filtre Erode?
Le ErodeFilter élimine les petits bruit blancs et épaissit les barres de code-barres en supprimant les pixels près du bord des formes. Ce filtre est mieux utilisé dans des scénarios où le fond du code-barres a beaucoup de taches blanches ou si l'image du code-barres est trop basse résolution ou floue, entraînant la fusion des barres. Le ErodeFilter rend les barres plus épaisses tout en supprimant les taches blanches en arrière-plan. Pour plus d'informations sur le traitement des images imparfaites, consultez notre exemple de code-barres imparfait.
Augmentez l'effet d'érosion en entrant un entier représentant kernelSize pour le filtre. Plus la taille du noyau est grande, plus l'effet sur l'image d'entrée est fort. Notez que le kernelSize est un carré et dans cet exemple serait un noyau 5x5.
À titre d'exemple, utilisez ErodeFilter avec une taille de noyau plus grande pour illustrer les effets du filtre.
using IronBarCode;BarcodeReaderOptions options = new BarcodeReaderOptions(){ // Choose which filters are to be applied (in order)ImageFilters = new ImageFilterCollection(true) { new ErodeFilter(5), },};// Apply options and read the barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("erodeFilter.jpg");
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose which filters are to be applied (in order)
ImageFilters = new ImageFilterCollection(true) {
new ErodeFilter(5),
},
};
// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);
// Export file to disk
results.ExportFilterImagesToDisk("erodeFilter.jpg");
ImportsIronBarCodeDim options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From { New ErodeFilter(5) }}' Apply options and read the barcodeDim results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.ExportFilterImagesToDisk("erodeFilter.jpg")
Imports IronBarCode
Dim options As New BarcodeReaderOptions() With {
.ImageFilters = New ImageFilterCollection(True) From {
New ErodeFilter(5)
}
}
' Apply options and read the barcode
Dim results As BarcodeResults = BarcodeReader.Read("sample.png", options)
' Export file to disk
results.ExportFilterImagesToDisk("erodeFilter.jpg")
Image originale
Filtre d'érosion appliqué
Si l'on compare les images d'entrée et de sortie ci-dessus, certaines barres sont visiblement plus épaisses en raison de la nature plus agressive de l'entrée d'une taille de noyau plus importante pour le filtrage. Cependant, le nombre de taches blanches dans l'image globale a diminué. Par la nature du filtre d'érosion, plus la taille du noyau est grande, plus vous risquez d'effacer les barres fines si vous l'appliquez de manière trop agressive, comme le montre l'image ci-dessus. Testez et affinez l'effet en modifiant la valeur de la taille de noyau entrée dans ErodeFilter.
Comment le filtre Dilate aide-t-il à la lecture des codes-barres?
Le DilateFilter fonctionne comme l'inverse du ErodeFilter, opérant en élargissant les régions lumineuses—habituellement l'arrière-plan—par l'ajout de pixels aux contours des objets. Bien que ce filtre répare les codes-barres endommagés ou pâles en comblant les petites lacunes ou en améliorant les zones à faible contraste, notez que son effet sur les barres de codes-barres diffère de l'intuition. Étant donné que la dilatation agrandit les espaces clairs, elle amincit indirectement les éléments sombres tels que les barres noires des codes-barres (en supposant un fond blanc). Cela rend le filtre particulièrement efficace dans les scénarios où les barres de code-barres semblent trop épaisses ou fusionnées, mais une utilisation excessive peut dégrader la précision de numérisation en rétrécissant de manière excessive les barres.
Similaire à ci-dessus, augmentez l'effet du filtre en entrant un entier représentant kernelSize pour le filtre.
Pour l'exemple ci-dessous, utilisez une taille de noyau plus grande pour illustrer les effets de DilateFilter.
using IronBarCode;BarcodeReaderOptions options = new BarcodeReaderOptions(){ // Choose which filters are to be applied (in order)ImageFilters = new ImageFilterCollection(true) { new DilateFilter(5), },};// Apply options and read the barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("dilateFilter.jpg");
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose which filters are to be applied (in order)
ImageFilters = new ImageFilterCollection(true) {
new DilateFilter(5),
},
};
// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);
// Export file to disk
results.ExportFilterImagesToDisk("dilateFilter.jpg");
ImportsIronBarCodeDim options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From { New DilateFilter(5) }}' Apply options and read the barcodeDim results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.ExportFilterImagesToDisk("dilateFilter.jpg")
Imports IronBarCode
Dim options As New BarcodeReaderOptions() With {
.ImageFilters = New ImageFilterCollection(True) From {
New DilateFilter(5)
}
}
' Apply options and read the barcode
Dim results As BarcodeResults = BarcodeReader.Read("sample.png", options)
' Export file to disk
results.ExportFilterImagesToDisk("dilateFilter.jpg")
Image originale
Filtre de dilatation appliqué
Comme montré dans l'image ci-dessus, une utilisation agressive de DilateFilter peut potentiellement détruire la structure du code-barres, fusionnant des barres rapprochées et créant des zones calmes dans les codes-barres. Testez et affinez les effets sur l'image en modifiant la valeur de la taille du noyau pour qu'elle soit plus grande ou plus petite, en fonction de l'image d'entrée.
Quand utiliser le filtre d'égalisation d'histogramme?
Le HistogramEqualizationFilter améliore le contraste de l'image en redistribuant les intensités des pixels pour améliorer la clarté. Elle est le plus souvent utilisée lorsque le code-barres présente soit un faible contraste, comme des images décolorées ou délavées, soit des images avec un éclairage inégal, comme des ombres sombres ou des éblouissements lumineux. En analysant l'histogramme de l'image, qui est la distribution de la luminosité des pixels, il redistribue les valeurs de pixels en augmentant le contraste en étirant la plage d'intensité, où les pixels sombres deviennent plus sombres et les pixels clairs deviennent plus clairs.
using IronBarCode;BarcodeReaderOptions options = new BarcodeReaderOptions(){ // Choose which filters are to be applied (in order)ImageFilters = new ImageFilterCollection(true) { new HistogramEqualizationFilter(), },};// Apply options and read the barcodeBarcodeResults results = BarcodeReader.Read("sample.png", options);// Export file to diskresults.ExportFilterImagesToDisk("histogramEqualizationFilter.jpg");
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose which filters are to be applied (in order)
ImageFilters = new ImageFilterCollection(true) {
new HistogramEqualizationFilter(),
},
};
// Apply options and read the barcode
BarcodeResults results = BarcodeReader.Read("sample.png", options);
// Export file to disk
results.ExportFilterImagesToDisk("histogramEqualizationFilter.jpg");
ImportsIronBarCodeDim options As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From { New HistogramEqualizationFilter() }}' Apply options and read the barcodeDim results AsBarcodeResults = BarcodeReader.Read("sample.png", options)' Export file to diskresults.ExportFilterImagesToDisk("histogramEqualizationFilter.jpg")
Imports IronBarCode
Dim options As New BarcodeReaderOptions() With {
.ImageFilters = New ImageFilterCollection(True) From {
New HistogramEqualizationFilter()
}
}
' Apply options and read the barcode
Dim results As BarcodeResults = BarcodeReader.Read("sample.png", options)
' Export file to disk
results.ExportFilterImagesToDisk("histogramEqualizationFilter.jpg")
Image originale
Filtre d'égalisation d'histogramme appliqué
Comme le montre l'image ci-dessus, les barres noires sont visiblement plus foncées et les espaces sont visiblement plus clairs par rapport à l'image originale.
Quels filtres de flou peuvent aider à la réduction du bruit des BarCodes?
Comment le filtre GaussianBlur réduit-il le bruit des images ?
Le GaussianBlurFilter applique un flou gaussien à une image. Ce filtre réduit généralement le bruit dans une image. Pour un guide complet sur le traitement des codes-barres imparfaits, consultez notre tutoriel de correction de l'orientation de l'image.
Le filtre fonctionne en moyennant les valeurs de pixels voisins dans l'image à l'aide d'une fonction gaussienne. La méthode repose sur deux facteurs ajustables :
Noyau : une matrice utilisée pour moyenniser les pixels.
Sigma : une valeur qui contrôle l'intensité du flou.
La taille par défaut pour kernel est 3x3 pixels, et la valeur par défaut Sigma est 3.0, produisant un flou modéré. Augmenter la valeur Sigma pour un effet de flou plus fort. Vous pouvez également personnaliser kernel pour contrôler la taille du voisinage que le filtre de flou moyenne.
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 barcodeBarcodeResults results = BarcodeReader.Read("sharpen.webp", myOptionsExample);// Export file to diskresults.ExportFilterImagesToDisk("gaussianBlur.png");
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");
ImportsIronBarCodePrivate myOptionsExample As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New GaussianBlurFilter(3, 3, 3.0F)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sharpen.webp", myOptionsExample)' Export file to diskresults.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")
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
Accentuer la netteté de l'image
Image floue gaussienne
Quand utiliser le filtre bilatéral?
Le BilateralFilter lisse les images tout en préservant les bords. Contrairement aux techniques de flou simple qui affectent tous les pixels de manière uniforme, le filtre bilatéral prend en compte les différences de couleur et la distance entre les pixels, ce qui le rend efficace pour le lissage préservant les contours.
La méthode repose sur trois facteurs ajustables :
NeighborhoodDiameter : Diamètre du voisinage de pixels (par défaut : 5).
SigmaColor : Influence des couleurs déterminant l'impact de la différence de couleur (par défaut : 75.0).
SigmaSpace : Influence spatiale déterminant l'impact de la distance (par défaut : 75.0).
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 barcodeBarcodeResults results = BarcodeReader.Read("sharpen.webp", myOptionsExample);// Export file to diskresults.ExportFilterImagesToDisk("bilateral.png");
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");
ImportsIronBarCodePrivate myOptionsExample As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New BilateralFilter(5, 75, 75)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sharpen.webp", myOptionsExample)' Export file to diskresults.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")
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
Accentuer la netteté de l'image
Image bilatérale
Qu'est-ce qui différencie le filtre MedianBlur pour la réduction du bruit ?
Le MedianBlurFilter réduit le bruit dans une image en remplaçant la valeur de chaque pixel par la valeur médiane des pixels environnants. Ce filtre est particulièrement efficace pour préserver les contours tout en supprimant le bruit. Pour en savoir plus sur les paramètres de lecture des codes-barres, consultez notre guide des paramètres du lecteur de codes-barres.
KernelSize : Taille du voisinage pour le calcul médian (doit être impair, par défaut : 5).
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 barcodeBarcodeResults results = BarcodeReader.Read("sharpen.webp", myOptionsExample);// Export file to diskresults.ExportFilterImagesToDisk("medianBlur.png");
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");
ImportsIronBarCodePrivate myOptionsExample As New BarcodeReaderOptions() With { .ImageFilters = New ImageFilterCollection(True) From {New MedianBlurFilter(5)}}' Apply options and read the barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sharpen.webp", myOptionsExample)' Export file to diskresults.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")
Appliquer ce filtre à l'entrée d'échantillon produit l'image ci-dessous.
Accentuer la netteté de l'image
Image MedianBlur
Comment sauvegarder les images filtrées à chaque étape du traitement?
Lors de l'application de plusieurs filtres au code-barres, la visualisation de la sortie après chaque méthode de filtrage peut s'avérer difficile. Cette fonctionnalité permet de sauvegarder l'image filtrée après chaque application de filtre, dans l'ordre où ils sont traités. Pour activer cette fonctionnalité, passez d'abord true au constructeur ImageFilterCollection. Ensuite, utilisez la méthode ExportFilterImagesToDisk pour fournir le chemin et le nom des images de sortie. Pour plus d'exemples sur l'enregistrement des BarCodes, consultez notre exemple de conversion de code-barres en image.
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 barcodeBarcodeResults results = BarcodeReader.Read("sample.webp", myOptionsExample);// Export file to diskresults.ExportFilterImagesToDisk("filteredImage.png");
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");
ImportsIronBarCodePrivate 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 barcodePrivate results AsBarcodeResults = BarcodeReader.Read("sample.webp", myOptionsExample)' Export file to diskresults.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")
Les filtres sont appliqués dans l'ordre du code, et les images de sortie reflètent les résultats de chaque itération :
Sharpen -> Après Sharpen
Sharpen + AdaptiveThreshold -> Après AdaptiveThreshold
Sharpen + AdaptiveThreshold + Contrast -> Après Contrast
Exemple d'image
Après avoir affûté
Après le seuil adaptatif
Après contraste
En dehors des propriétés ImageFilters, ajoutez d'autres propriétés à BarcodeReaderOptions pour une lecture plus précise; voir cet article pour plus d'informations.
Questions Fréquemment Posées
Que sont les filtres de correction d'image et pourquoi sont-ils nécessaires pour la lecture des codes-barres ?
Les filtres de correction d'image dans IronBarcode sont des outils intégrés qui améliorent par programme les images de codes-barres floues ou imparfaites. Ils sont essentiels car la mauvaise qualité de l'image est l'un des principaux facteurs empêchant une lecture réussie des codes-barres. IronBarcode propose des filtres tels que SharpenFilter et ContrastFilter qui améliorent la précision de la lecture sans nécessiter de logiciel d'édition d'image externe ou de recapture d'images.
Comment appliquer des filtres de correction d'image pour améliorer la lecture des codes-barres ?
Pour appliquer des filtres dans IronBarcode, créez une instance ImageFilterCollection et ajoutez-y des instances de filtres individuels. Assignez ensuite cette collection à la propriété ImageFilters de BarcodeReaderOptions et passez-la à la méthode Read. Par exemple : new BarcodeReaderOptions { ImageFilters = new ImageFilterCollection() { new SharpenFilter(3.5f), new ContrastFilter(2.0f) } }.
Quels sont les filtres d'image recommandés pour les images de codes-barres floues ?
Pour les images de codes-barres floues, IronBarcode recommande d'utiliser au moins le SharpenFilter et le ContrastFilter. Le SharpenFilter améliore la définition des bords dans les images floues, tandis que le ContrastFilter améliore la distinction entre les zones claires et sombres. Ces filtres fonctionnent ensemble pour rendre les codes-barres plus lisibles sans traitement d'image externe.
Puis-je personnaliser l'intensité des filtres de correction d'image ?
Oui, IronBarcode vous permet de configurer chaque filtre avec des valeurs personnalisées. Par exemple, SharpenFilter accepte un paramètre flottant (comme 3.5f) pour contrôler l'intensité de l'accentuation, et ContrastFilter accepte un paramètre (comme 2.0f) pour ajuster les niveaux de contraste. Cette personnalisation permet d'optimiser l'efficacité des filtres en fonction des différentes conditions de l'image.
Ai-je besoin d'outils d'édition d'images externes pour améliorer les images de codes-barres ?
Non, IronBarcode élimine le besoin d'outils d'édition d'images externes en fournissant des filtres de correction d'image intégrés. Ces filtres programmatiques, tels que SharpenFilter et ContrastFilter, peuvent améliorer la qualité de l'image directement dans votre application .NET, ce qui permet de gagner du temps et d'éviter de dépendre d'un logiciel tiers.
When should I use the HistogramEqualization Filter?
The HistogramEqualization Filter enhances contrast by redistributing pixel intensities, making it suitable for barcodes with low contrast or uneven lighting. This filter stretches the intensity range to improve readability.
What does the GaussianBlur Filter do?
The GaussianBlur Filter reduces noise in an image by averaging pixel values using a Gaussian function. It is configurable via kernel size and sigma value, and it applies a moderate blur to help reduce image noise.
How does the Bilateral Filter differ from other blur filters?
The Bilateral Filter reduces noise while preserving edges and takes into account both color differences and pixel distance. It smooths images by considering neighborhood diameter, sigma color, and sigma space parameters.
What is the primary use of the MedianBlur Filter?
The MedianBlur Filter excels at preserving edges while minimizing noise by replacing each pixel's value with the median of its neighbors, making it effective for noise reduction with edge preservation.
How can I save images after each filter is applied in IronBarcode?
In IronBarcode, enable exporting images after each filter step by passing true to the ImageFilterCollection constructor, then use the ExportFilterImagesToDisk method to save the output images at each processing step.