Orta ve Wiener Filtrelerinin Uygulanması

Orta ve Wiener Filtrelerinin Uygulanması

Orta filtre, genellikle gürültüyü kaldırmak için kullanılan bir doğrusal olmayan dijital filtreleme tekniğidir. Bu tür gürültü azaltma, daha sonraki işlemlerin sonuçlarını iyileştirmek için tipik bir ön işleme adımıdır. Wiener filtresi, aditif gürültü ve bulanıklaşma tarafından bozulmuş görüntüler için MSE (ortalama kare hatası) optimal sabit doğrusal filtre olarak kabul edilir. Aspose.PSD API geliştiricileri, bir orta filtre uygulayabilir ve gauss wiener filtresini görüntülere uygulayabilir. Bu makale, orta filtresi ve gauss wiener filtresinin nasıl uygulanacağını göstermektedir.

Orta Filtresi Uygulanması

Aspose.PSD, MedianFilterOptions sınıfını RasterImage üzerine bir filtre uygulamak için sağlar. Aşağıda verilen kod parçacığı, bir raster görüntüye orta filtrenin nasıl uygulanacağını göstermektedir.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + @"median_test_denoise_out.gif";
// Load the noisy image
using (Image image = Image.Load(sourceFile))
{
// Cast the image into RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Create an instance of MedianFilterOptions class and set the size, Apply MedianFilterOptions filter to RasterImage object and Save the resultant image
MedianFilterOptions options = new MedianFilterOptions(4);
rasterImage.Filter(image.Bounds, options);
image.Save(destName, new GifOptions());
}

Gauss Wiener Filtresinin Uygulanması

Aspose.PSD, GaussWienerFilterOptions sınıfını RasterImage üzerine bir filtre uygulamak için sağlar. Aşağıda verilen kod parçacığı, bir raster görüntüye gauss wiener filtresinin nasıl uygulanacağını göstermektedir.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + @"gauss_wiener_out.gif";
// Load the noisy image
using (Image image = Image.Load(sourceFile))
{
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Create an instance of GaussWienerFilterOptions class and set the radius size and smooth value.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image
rasterImage.Filter(image.Bounds, options);
image.Save(destName, new GifOptions());
}

Renkli Görüntüye Gauss Wiener Filtresinin Uygulanması

Aspose.PSD, renkli görüntüler için GaussWienerFilterOptions sağlar. Aşağıda verilen kod parçacığı, bir renkli görüntüye gauss wiener filtresinin nasıl uygulanacağını göstermektedir.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + @"gauss_wiener_color_out.gif";
// Load the noisy image
using (Image image = Image.Load(sourceFile))
{
// Cast the image into RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Create an instance of GaussWienerFilterOptions class and set the radius size and smooth value.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(5, 1.5);
options.Brightness = 1;
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image
rasterImage.Filter(image.Bounds, options);
image.Save(destName, new GifOptions());
}

Hareketli Wiener Filtresinin Uygulanması

Aspose.PSD, MotionWienerFilterOptions sınıfını RasterImage üzerine bir filtre uygulamak için sağlar. Aşağıda verilen kod parçacığı, bir raster görüntüye hareketli wiener filtresinin nasıl uygulanacağını göstermektedir.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + @"motion_filter_out.gif";
// Load the noisy image
using (Image image = Image.Load(sourceFile))
{
// Cast the image into RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Create an instance of MotionWienerFilterOptions class and set the length, smooth value and angle.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image
rasterImage.Filter(image.Bounds, options);
image.Save(destName, new GifOptions());
}

Bir Görüntü Üzerinde Düzeltme Filtresi Uygulama

Bu makale, bir görüntü üzerinde düzeltme filtrelerini uygulamak için Aspose.PSD for .NET’in kullanımını göstermektedir. Aspose.PSD API’leri, bu hedefe ulaşmak için verimli ve kolay kullanımlı yöntemler sunmaktadır. Aspose.PSD for .NET, filtreleme için BilateralSmoothingFilterOptions ve SharpenFilterOptions sınıflarını açığa çıkarmıştır. BilateralSmoothingFilterOptions sınıfı bir boyut olarak bir tamsayıya ihtiyaç duyar. Yeniden boyutlandırma işlemlerini gerçekleştirmek için adımlar aşağıdaki gibidir:

  1. Görüntüyü Image sınıfının sağladığı Load fabrika yöntemi ile yükle.
  2. Görüntüyü RasterImage’a dönüştür.
  3. Bir BilateralSmoothingFilterOptions ve SharpenFilterOptions sınıfı örneği oluştur.
  4. RasterImage.Filter yöntemini çağırırken dikdörtgeni görüntü sınırları olarak ve BilateralSmoothingFilterOptions sınıfı örneğini belirlerken.
  5. RasterImage.Filter yöntemini çağırırken dikdörtgeni görüntü sınırları olarak ve SharpenFilterOptions sınıfı örneğini belirlerken.
  6. Kontrastı ayarla
  7. Parlaklığı ayarla
  8. Sonuçları kaydet.

Bradley eşikleme algoritmasını kullanma

Görüntü eşikleme, grafik uygulamalarda kullanılmaktadır. Bir görüntünün eşiklenmesinin amacı, pikselleri “koyu” veya “açık” olarak sınıflandırmaktır. Aspose.PSD API, görüntüleri dönüştürürken Bradley eşikleme kullanmanıza olanak tanır. Aşağıdaki kod parçacığı, eşik değerini tanımlamanın ve ardından Bradley’nin eşikleme algoritmasını çağırmanın nasıl yapıldığını göstermektedir.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + @"binarized_out.png";
// Load the noisy image
// Load an image
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
// Define threshold value, Call BinarizeBradley method and pass the threshold value as parameter and Save the output image
double threshold = 0.15;
image.BinarizeBradley(threshold);
image.Save(destName, new PngOptions());
}