Bar kod Çözümlemeyi İyileştirmek için C# Resim Düzeltme Filtrelerini Kullanma
IronBarcode, SharpenFilter ve ContrastFilter gibi yerleşik görüntü düzeltme filtreleri sunar. Bu filtreler, bulanık veya kusurlu BARCODE görüntülerini programlı olarak iyileştirerek, harici görüntü düzenleme yazılımına veya görüntüleri yeniden yakalamaya gerek kalmadan okuma doğruluğunu artırır.
Her resim mükemmel değildir ve zayıf görüntü kalitesi IronBarcode'da başarılı barkod okuma işlemlerini engelleyen ana faktörlerden biridir. Görüntüleri yeniden çekmek veya dış resim iyileştirme yazılımı kullanmak yerine, IronBarcode yerleşik filtreler sunarak resim kalitesini programatik olarak iyileştirir. Bu filtreler, IronBarcode'un zor görüntüleri okumasına ve genel doğruluğu artırmasına yardımcı olur.
IronBarcode'da mevcut resim düzeltme filtreleri, bunların görüntüler üzerindeki etkileri ve nasıl uygulanacakları hakkında bilgi edinmek için okumaya devam edin. Daha kapsamlı barkod okuma teknikleri için, Barkodları Okuma eğiticimizi kontrol edin.
Hızlı Başlangıç: Barkod Okumalarını İyileştirmek İçin Keskinleştirme ve Kontrast Filtreleri Uygulayın
Tek bir adımda, BarcodeReaderOptions içindeki ImageFilterCollection kullanarak IronBarcode'un SharpenFilter ve ContrastFilter öğelerini uygulayın. Bu, minimum kurulumla ve dış araçlara gerek duymadan barkod taramasını iyileştirir.
-
IronBarcode aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package BarCode -
Bu kod parçacığını kopyalayın ve çalıştırın.
BarcodeResults results = IronBarCode.BarcodeReader.Read("input.png", new IronBarCode.BarcodeReaderOptions { ImageFilters = new IronBarCode.ImageFilterCollection() { new IronBarCode.SharpenFilter(3.5f), new IronBarCode.ContrastFilter(2.0f) } }); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronBarcode kullanmaya başlayın
Asgari İş Akışı (5 adım)
- Görüntü düzeltme filtrelerini kullanmak için C# kütüphanesini indirin
- Mevcut tüm resim düzeltme filtrelerini keşfedin
- Her filtreyi özel değerlerle yapılandırın
- Kusurlu resim örneklerine filtre uygulayın
- Geliştirilmiş resimlerden barkod değerlerini alın
Barkod Okuma İşlemini İyileştirmek İçin Resim Filtrelerini Nasıl Uygularım?
Filtreleri uygulamak için, ImageFilterCollection sınıfını örneklendirin ve her filtrenin örneğini ayrı ayrı oluşturun. Ardından nesneyi ImageFilters nesnesinin BarcodeReaderOptions özelliğine atayın. Seçenekler nesnesini örnek görüntü ile birlikte Read yöntemine aktarın. İleri düzey kurulum seçenekleri için, NuGet paketleri kılavuzumuzu ziyaret edin.
Aşağıdaki resmi örnek resmimiz olarak kullanın.
Örnek resim
Görüntü oldukça bulanık görünüyor. Ancak parlaklık kabul edilebilir düzeyde ve beyaz ile siyah renkler ayırt edilebilir. Bu nedenle, BARCODE okunabilirliğini artırmak için en azından SharpenFilter ve ContrastFilter kodlarını uygulayın. Aşağıdaki kod parçasına bakarak görüntüye filtreleri uygulayın, okuyun ve sonucu konsola yazdırın.
: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
Yukarıdaki kod parçası filtreleri uygular, barkodu okur ve filtreli resmi diske ihraç eder. Örnek ve filtrelenmiş görüntüler arasındaki karşılaştırma aşağıda gösterilmektedir.
Örnek resim
Filtrelenmiş örnek
IronBarcode'daki Hangi Resim Düzeltme Filtreleri Mevcuttur?
IronBarcode, görüntü düzeltme için özel olarak tasarlanmış birkaç görüntü filtresi sunar. Bu filtreler, kusurlu barkod görüntülerinin okunmasına ve okuma doğruluğunun artırılmasına yardımcı olur. Ancak, uygun filtreleri seçmek ve çok fazla filtre kullanmak veya yanlış filtre kullanmaktan performans sorunlarından kaçınmak için bu filtrelerin nasıl çalıştığını anlayın. Mevcut filtreler şunları içerir:
AdaptiveThresholdFilterBinaryThresholdFilterBrightnessFilterContrastFilterInvertFilterSharpenFilterErodeFilterDilateFilterHistogramEqualizationFilter- Bulanıklaştırma Filtreleri
GaussianBlurFilterBilateralFilterMedianBlurFilter
Filtrelerin uygulanma sırası, ImageFilterCollection içindeki konumlarına göre belirlenir. Bu filtrelerin ayrıntılı API belgeleri için API Referansımızı ziyaret edin.
Uyarlamalı Eşik Filtresi Nasıl Çalışır?
AdaptiveThresholdFilter, IronBarcode'da bulunan ve görüntüye Bradley Adaptive Threshold tekniğini uygulayan bir filtredir; bu teknik, görüntüyü ikili hale getirmek için eşiği otomatik olarak belirler. Bu filtre, düzensiz aydınlatma ve değişken arka plan yoğunluk seviyelerine sahip görüntüler için idealdir.
: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")
Aşağıda, farklı değerler kullanılarak filtrenin uygulanmasının çıktıları bulunmaktadır.
Varsayılan değer
0.9 değeri
Yapılandırma için ek parametreleri kabul eden yapıcı:
Upper: Eşikleme için üst (beyaz) renk.Lower: Eşikleme için alt (siyah) renk.Threshold: İkilileştirme için eşik sınırı (0,0-1,0).Rectangle: İşlemcinin uygulanacağı dikdörtgen bölge.
Yukarıdaki çıkış resminde gösterildiği gibi, görüntü yalnızca siyah ve beyaz renklere sahip olacak şekilde ikilendirilmiştir. Barkod okumak için hala ideal görünmese de, filtrelerin kombinasyon halinde kullanılması gerekmektedir. En iyi sonuçları elde etmek için parametre duyarlılığını deneyin.
İkili Eşik Filtresi Nasıl Çalışır?
BinaryThresholdFilter, belirli bir eşik değerinde pikselleri bölerek ve bir renk bileşeninin parlaklığını karşılaştırarak bir görüntüyü filtreler. AdaptiveThresholdFilter'ye benzer şekilde, bu filtre doğru kullanılmadığında yeni veya istenmeyen gürültüye neden olabilir. Ancak, IronBarcode filtre özellikleri için varsayılan değerler ayarlamıştır.
AdaptiveThresholdFilter ile benzer şekilde, BinaryThresholdFilter de yapılandırma için aynı ek parametreleri kabul eder:
Upper: Eşikleme için üst (beyaz) renk.Lower: Eşikleme için alt (siyah) renk.Threshold: İkilileştirme için eşik sınırı (0,0-1,0).Rectangle: İşlemcinin uygulanacağı dikdörtgen bölge.
: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")
Aşağıda, örnek görüntüye filtrelerin uygulanması sonucunda elde edilen çıktı bulunmaktadır.
Varsayılan değer
0.9 değeri
Yukarıdaki çıkış görüntüsüne bakıldığında, örnek siyah ve beyaz renklere dönüştürülmüştür. Ancak, bu filtin üzerine sürülen filtre, barkod çubuklarının kaldırılması ve yeni gürültü eklenmesi nedeniyle bu görüntü için açıkça uygun değildir. Zor barkod senaryolarının üstesinden gelmek için, tanınmayan barkodlar için sorun giderme kılavuzumuza başvurun.
Barkod Okumayı İyileştirmek İçin Resim Parlaklığını Nasıl Ayarlarım?
BrightnessFilter, IronBarcode'daki görüntü filtresi koleksiyonundaki bir başka önemli filtredir. Adından da anlaşılacağı gibi, bu filtre, barkod görüntüsünün parlaklığını ayarlar. Bu yapıcıya verilen giriş, çıktı görüntüsündeki Miktar parlaklığı değiştirir. Varsayılan değer 1'dir ve bu, görüntüyü değiştirmeden bırakır. 0 değeri tamamen siyah bir görüntü yaratırken, 1'in üzerindeki değerler görüntüyü daha parlak hale getirir.
: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")
Aşağıda, bu filtrenin örnek girdiye uygulanmasından sonra elde edilen çıktı görüntü bulunmaktadır.
Varsayılan değer
1.5 değeri
Barkod Görsellerini İyileştirmek İçin Kontrast Filtresini Nasıl Kullanırım?
ContrastFilter, bir görüntünün kontrast seviyesini ayarlar. Görüntü kontrastı, bir görüntüdeki çeşitli öğeler arasındaki renk yoğunluğu farkını ifade eder. Kontrast seviyesinin artırılması, detayların daha görünür olmasını sağlar ve görüntünün canlı ve çarpıcı görünmesini sağlarken, kontrastın azalması görüntünün daha yumuşak ve daha sessiz görünmesini sağlar. Barkod özelleştirme hakkında daha fazla ayrıntı için barkod stilini özelleştirme kılavuzumuza bakın.
Varsayılan değer 1'dir ve bu, görüntüyü değiştirmeden bırakır. 0 değeri tamamen gri bir görüntü yaratırken, 1'in üzerindeki değerler görüntü kontrastını artırır.
: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")
Bu filtreyi örnek girdiye uygulamak, aşağıdaki görüntüyü üretir.
Varsayılan değer
1.5 değeri
Ters Çevirme Filtresini Ne Zaman Kullanmalıyım?
Bu filtre, bir görüntü içindeki renkleri ters çevirir, yani beyaz siyaha ve siyah da beyaza dönüşür. Özellikle bir barkod görüntüsünün zemin renginde okunması gereken durumlarda faydalıdır. BinaryThresholdFilter'den farklı olarak, bu filtre hassasiyet belirtilmesine gerek kalmadan renkleri doğrudan tersine çevirir. Ayrıca, bu filtre, renklerin tüm görüntü yerine belirli bir alanda ters çevrilmesi için bir KırpmaDikdörtgeni ile kullanılabilir. Kırpma bölgeleri ayarlama hakkında daha fazla bilgi için, kırpma bölgesi eğitimimize bakın.
: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")
Aşağıdaki çıktı görüntüsü, bu filtrenin örnek giriş görüntüsüne uygulanmasının sonucudur.
Orijinal görüntü
Ters çevrilmiş
Keskinleştirme Filtresiyle Bulanık Barkod Görsellerini Nasıl Düzeltebilirim?
IronBarcode bir keskinleştirme filtresi sağlar. Bu filtre, bulanık görüntülerle uğraşırken çok faydalı olan bir görüntünün keskinliğini artırır. Bu filtreyi, filtğu başlatırken Sigma değerini ayarlayarak görüntünün keskinliğini ayarlamak için manipüle edin. Varsayılan değer 3'tür. Sigma değerini artırarak görüntünün keskinliğini artırın. Diğer performans optimizasyon seçenekleri için, okuma hız seçenekleri hakkında kılavuzumuza bakın.
: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")
The image below is the sharpened version of the sample input image.
Varsayılan değer
0.5 değeri
Yukarıdaki görüntüyü orijinal görüntü ile karşılaştırarak, daha keskin görünmektedir ve IronBarcode ile barkod okumaya yardımcı olmaktadır. Çoğu durumda, SharpenFilter her zaman ImageFilterCollection sınıfındaki diğer filtrelerle birlikte uygulanır.
Yontma Filtresi Ne İçin Kullanılır?
ErodeFilter, şekillerin kenarlarına yakın pikselleri kaldırarak küçük beyaz gürültüyü giderir ve BARCODE çubuklarını kalınlaştırır. Bu filtre, BARCODE arka planında çok sayıda beyaz benek bulunan durumlarda veya BARCODE görüntüsünün çözünürlüğünün çok düşük ya da bulanık olması nedeniyle çubukların birbirine karıştığı durumlarda en iyi sonucu verir. ErodeFilter, çubukları kalınlaştırırken arka plandaki beyaz lekeleri giderir. Kusurlu görüntülerle nasıl başa çıkılacağı hakkında daha fazla bilgi için, kusurlu barkod örneğine bakın.
Filtreye kernelSize değerini temsil eden bir tamsayı girerek aşınma etkisini artırın. Çekirdek boyutu ne kadar büyükse, giriş görüntüsü üzerindeki etkisi o kadar güçlü olur. kernelSize'nin bir kare olduğunu ve bu örnekte 5x5 çekirdeği olacağını unutmayın.
Örnek olarak, filtrenin etkilerini göstermek için daha büyük bir çekirdek boyutuna sahip ErodeFilter kullanın.
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-erode.cs
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");
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")
Orijinal görüntü
Yontma Filtresi Uygulandı
Yukarıda girdiler ve çıktı görüntülerini karşılaştırarak, bazı çubuklar daha büyük çekirdek boyutunu filtreye girdi olarak kullanmanın daha agresif doğası nedeniyle gözle görülür şekilde kalındır. Ancak, genel resimdeki beyaz benekler azaldı. Yontma filtresinin doğası gereği, çekirdek boyutu büyüdüğünde, yukarıdaki resimde gösterildiği gibi çok agresif uygulanırsa ince çubuklarğağıra da silinebilir. ErodeFilter'ye girilen çekirdek boyutu değerini değiştirerek sonucu test edin ve iyileştirin.
Yoğaltma Filtresi Barkod Okuma İçin Nasıl Yardımcı Olur?
DilateFilter, ErodeFilter'in tersi olarak işlev görür ve nesne sınırlarına piksel ekleyerek parlak bölgeleri (genellikle arka plan) genişleterek çalışır. Bu filtre, düşük kontrast alanları iyileştirerek veya küçük boşlukları doldurarak zarar görmüş veya solmuş barkodları onarsa da, etkisi barkod çubuklarına sezgiden farklıdır. Yoğaltma, parlak alanları genişlettiğinden, beyaz bir arka planda olduğu varsayıldığında, siyah barkod çubukları gibi koyu öğeleri dolaylı olarak inceltir. Bu, aşırı daraltarak çubukların tarama hassasiyetini düşürmelerine neden olabilecek aşırı kullanıma karşı dikkat gerektiren, barkod çubuklarının aşırı kalın veya birleşik göründüğü senaryolarda filtreyi özellikle etkili kılar.
Yukarıdakine benzer şekilde, filtre için kernelSize'yi temsil eden bir tamsayı girerek filtrenin etkisini artırın.
Aşağıdaki örnekte, DilateFilter'nin etkilerini göstermek için daha büyük bir çekirdek boyutu kullanın.
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-dilate.cs
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");
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")
Orijinal görüntü
Dilatasyon Filtresi Uygulandı
Yukarıdaki resimde gösterildiği gibi, DilateFilter etiketinin aşırı kullanımı, BARCODE yapısını bozabilir, birbirine yakın çubukları birleştirebilir ve BARCODE'larda sessiz bölgeler oluşturabilir. Giriş görüntüsüne bağlı olarak, çekirdek boyutu değerini büyütüp küçülterek görüntü üzerindeki etkileri test edin ve inceleyin.
Histogram Eşitleme Filtresini Ne Zaman Kullanmalıyım?
HistogramEqualizationFilter, netliği artırmak için piksel yoğunluklarını yeniden dağıtarak görüntü kontrastını iyileştirir. En yaygın olarak, düşük kontrastlı barkodlarda kullanılır; örneğin solmuş veya soluk görüntüler, ya da karanlık gölgeler veya parlak parıltılar gibi düzensiz aydınlatmanın olduğu görüntüler. Görüntü histogramını, yani piksel parlaklığı dağılımını analiz ederek, piksel değerlerini yeniden dağıtarak kontrastı güçlendirir, yoğunluk aralığını genişleterek karanlık pikseller daha karanlık, parlak pikseller daha parlak hale gelir.
:path=/static-assets/barcode/content-code-examples/how-to/image-correction-histogram-equalization-filter.cs
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");
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")
Orijinal görüntü
Histogram Eşitleme Filtresi Uygulandı
Yukarıdaki resimde gösterildiği gibi, siyah çubuklar gözle görülür şekilde daha koyu ve boşluklar orijinal görüntüye göre daha parlak.
Barkod Gürültü Azaltımı İçin Hangi Bulanıklaştırma Filtreleri Yardımcı Olabilir?
GaussianBlur Filtresi Görüntü Gürültüsünü Nasıl Azaltır?
GaussianBlurFilter, bir görüntüye Gauss bulanıklığı uygular. Bu filtre genellikle bir görüntüdeki gürültüyü azaltır. Kusurlu barkodlarla başa çıkma konusunda kapsamlı bir kılavuz için, görüntü yönlendirme düzeltme eğiticimize başvurun.
Bu filtre, bir Gaussian fonksiyonu kullanarak görüntüdeki komşu piksel değerlerini ortalayarak çalışır. Yöntem iki ayarlanabilir faktöre dayanır:
- Kerneli: pikselleri ortalamak için kullanılan bir matris.
- Sigma: bulanıklık yoğunluğunu kontrol eden bir değer.
Varsayılan kernel boyutu 3x3 pikseldir ve varsayılan Sigma değeri 3.0'dir, bu da orta derecede bir bulanıklık oluşturur. Sigma değerini artırmak, daha güçlü bir bulanıklaştırma efekti sağlar. Ayrıca, kernel öğesini özelleştirerek bulanıklaştırma filtresinin ortalamasını aldığı bölgenin boyutunu kontrol edebilirsiniz.
: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")
Bu filtreyi örnek girdiye uygulamak, aşağıdaki görüntüyü üretir.
Görüntüyü keskinleştir
GaussianBlur görüntüsü
Bilateral Filtresini Ne Zaman Kullanmalıyım?
BilateralFilter, kenarları korurken görüntüleri yumuşatır. Basit bulanıklık tekniklerinde tüm pikselleri eşit şekilde etkileyen Blateral Filtre, hem renk farklarını hem de piksel mesafelerini dikkate alarak kenar koruyucu yumuşatma sağlar.
Yöntem üç ayarlanabilir faktöre dayanır:
NeighborhoodDiameter: Piksel komşuluğunun çapı (varsayılan: 5).SigmaColor: Renk farkının etkisini belirleyen renk etkisi (varsayılan: 75,0).SigmaSpace: Mesafe etkisini belirleyen uzamsal etki (varsayılan: 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")
Bu filtreyi örnek girdiye uygulamak, aşağıdaki görüntüyü üretir.
Görüntüyü keskinleştir
İki taraflı görüntü
MedianBlur Gürültü Azaltımı İçin Neden Farklıdır?
MedianBlurFilter, her pikselin değerini çevreleyen piksellerin medyan değeriyle değiştirerek görüntüdeki gürültüyü azaltır. Bu filtre, kenarları korurken gürültüyü gidermede özellikle iyidir. Barkod okuma ayarları hakkında daha fazla bilgi edinmek için, barkod okuyucu ayarları kılavuzumuzu ziyaret edin.
KernelSize: Medyan hesaplaması için komşuluk boyutu (tek sayı olmalı, varsayılan: 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")
Bu filtreyi örnek girdiye uygulamak, aşağıdaki görüntüyü üretir.
Görüntüyü keskinleştir
MedianBlur görüntü
Her İşlem Adımında Filtrelenmiş Görüntüleri Nasıl Kaydedebilirim?
Barkoda birden fazla filtre uygularken, her filtre yönteminin çıktısını görmek zor olabilir. Bu özellik, uygulanan her bir filtre ardından filterlenmiş görüntünün kaydedilmesine imkan tanır, işlendikleri sıraya göre. Bu özelliği etkinleştirmek için önce true'yi ImageFilterCollection yapıcıya aktarın. Ardından, ExportFilterImagesToDisk yöntemini kullanarak çıktı görüntülerin yolunu ve adını belirtin. Barkodları kaydetme hakkında daha fazla örnek için, barkodu görüntüye dönüştürme örneğimizi inceleyin.
: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")
Filtreler, kodun sırasına göre uygulanır ve çıktı görüntüleri her yinelemenin sonuçlarını yansıtır:
Sharpen->Sharpen'den sonraSharpen+AdaptiveThreshold->AdaptiveThreshold'dan sonraSharpen+AdaptiveThreshold+Contrast->Contrast'den sonra
Örnek resim
Keskinleştirme Sonrası
Uyarlamalı Eşik Sonrası
Kontrast Sonrası
ImageFilters özelliklerinin yanı sıra, daha doğru bir okuma için BarcodeReaderOptions'ye başka özellikler de ekleyin; daha fazla bilgi için bu makaleye bakın.
Sıkça Sorulan Sorular
Görüntü düzeltme filtreleri nelerdir ve barkod okuma için neden gereklidir?
IronBarcode'daki görüntü düzeltme filtreleri, bulanık veya kusurlu barkod görüntülerini programlı olarak iyileştiren yerleşik araçlardır. Başarılı barkod okumalarını engelleyen ana faktörlerden biri kötü görüntü kalitesidir. IronBarcode, SharpenFilter ve ContrastFilter gibi dış görüntü düzenleme yazılımlarına veya görüntüleri yeniden çekmeye gerek kalmadan okuma doğruluğunu artıran filtreler sağlar.
Barkod taramasını iyileştirmek için nasıl görüntü düzeltme filtreleri uygulayabilirim?
IronBarcode'da filtre uygulamak için bir ImageFilterCollection örneği oluşturun ve buna ayrı filtre örnekleri ekleyin. Daha sonra bu koleksiyonu BarcodeReaderOptions nesnesinin ImageFilters özelliğine atayın ve Read yöntemine iletin. Örneğin: yeni BarcodeReaderOptions { ImageFilters = yeni ImageFilterCollection() { yeni SharpenFilter(3.5f), yeni ContrastFilter(2.0f) } }.
Bulanık barkod görüntüleri için hangi filtreler önerilir?
Bulanık barkod görüntüleri için, IronBarcode en azından SharpenFilter ve ContrastFilter kullanmayı önerir. SharpenFilter, bulanık görüntülerde kenar tanımını iyileştirirken, ContrastFilter, açık ve koyu alanlar arasındaki ayrımı artırır. Bu filtreler, dış görüntü işlemlerine gerek kalmadan barkodları daha okunabilir hale getirmek için birlikte çalışır.
Görüntü düzeltme filtrelerinin gücünü özelleştirebilir miyim?
Evet, IronBarcode her filtreyi özel değerlerle yapılandırmanıza olanak tanır. Örneğin, SharpenFilter keskinleştirme yoğunluğunu kontrol etmek için bir float parametresi (3.5f gibi) kabul eder ve ContrastFilter kontrast seviyelerini ayarlamak için bir parametre (2.0f gibi) kabul eder. Bu özelleştirme, farklı görüntü koşulları için filtre etkinliğini optimize etmeye yardımcı olur.
Barkod görüntülerini iyileştirmek için harici görüntü düzenleme araçlarına ihtiyacım var mı?
Hayır, IronBarcode, yerleşik görüntü düzeltme filtreleri sağlayarak harici görüntü düzenleme araçlarına duyulan ihtiyacı ortadan kaldırıyor. Keskinleştirme Filtresi ve Kontrast Filtresi gibi bu programatik filtreler, .NET uygulamanız içinde doğrudan görüntü kalitesini artırabilir, böylece zaman kazandırır ve üçüncü taraf yazılımlara bağımlılıktan kaçınır.
Barkod operasyonlarında IronBarcode kullanmanın avantajları nelerdir?
IronBarcode, entegrasyon kolaylığı, birçok barkod formatını destekleme, yüksek kaliteli görüntü üretimi ve sağlam okuma yetenekleri gibi avantajlar sunarak, C#'ta barkod operasyonları için kapsamlı bir araçtır.
IronBarcode barkod görünümünü özelleştirme desteği sağlıyor mu?
Evet, IronBarcode, barkod görünümünü özelleştirmek için renk, boyut ve metin notları gibi geniş seçenekler sunar, bu da barkodları belirli tasarım gereksinimlerinize göre uyarlamanıza imkan tanır.
IronBarcode, iş süreçlerindeki verimliliği artırmaya nasıl yardımcı olabilir?
IronBarcode, hızlı ve doğru barkod üretimi ve okuma yeteneği sağlayarak, manuel veri girişi hatalarını azaltır ve envanter ile varlık takibini iyileştirerek iş süreçlerinin verimliliğini artırır.
Bir projede IronBarcode'u uygulamak için hangi programlama becerileri gereklidir?
IronBarcode'u bir projede uygulamak için temel C# programlama bilgisi yeterlidir, çünkü bu kütüphane, geliştiricilere rehberlik eden basit yöntemler ve kapsamlı belgeler sağlar.
IronBarcode, hem küçük projeler hem de büyük kurumsal uygulamalar için uygun mu?
IronBarcode, küçük projeler kadar geniş çaplı kurumsal uygulamalar için de uygun, ölçeklenebilir ve çok yönlü olacak şekilde tasarlanmıştır ve sağlam barkod çözümleri gerektiren uygulamalara hizmet eder.

