Median ve Wiener Filtrelerinin Uygulanması

Median ve Wiener Filtrelerinin Uygulanması

Ortalama 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, sonraki işlemlerin sonuçlarını iyileştirmek için tipik bir ön işleme adımıdır. Wiener filtresi, ek gürültü ve bulanıklık ile bozulmuş görüntüler için MSE (ortalama karesel hata) en uygun sabit doğrusal filtre konumundadır. Aspose.PSD for Java API geliştiricileri, görüntüdeki gürültüyü azaltmak için ortalama filtreyi uygulayabilir ve Gauss wiener filtreyi uygulayabilirler. Bu makale, ortalama filtre ve Gauss wiener filtresinin nasıl uygulanabileceğini göstermektedir.

Median Filtresi Uygulanması

Aspose.PSD, filtre uygulamak için MedianFilterOptions sınıfını sağlar. Aşağıda verilen kod örneği, bir rastgele görüntüye ortalamalı filtre uygulamanın nasıl olduğunu göstermektedir.

String dataDir = Utils.getDataDir(ApplyMedianAndWienerFilters.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "median_test_denoise_out.gif";
try (Image image = Image.load(sourceFile);
// Cast the image into RasterImage
RasterImage rasterImage = (RasterImage) image) {
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.getBounds(), options);
image.save(destName, new GifOptions());
}

Gauss Wiener Filtresi Uygulaması

Aspose.PSD, bir RasterImage üzerinde filtre uygulamak için GaussWienerFilterOptions sınıfını sağlar. Aşağıda verilen kod örneği, bir rastgele görüntüye Gauss wiener filtresi nasıl uygulanırı göstermektedir.

String dataDir = Utils.getDataDir(ApplyGausWienerFilters.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "gauss_wiener_out.gif";
try (Image image = Image.load(sourceFile);
RasterImage rasterImage = (RasterImage) image) {
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.setGrayscale(true);
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image
rasterImage.filter(image.getBounds(), options);
image.save(destName, new GifOptions());
}

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

Aspose.PSD, renkli görüntüler için GaussWienerFilterOptions sağlar. Aşağıda verilen kod örneği, bir renkli görüntüye Gauss wiener filtresi nasıl uygulanırı göstermektedir.

String dataDir = Utils.getDataDir(ApplyGausWienerFiltersForColorImage.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "gauss_wiener_color_out.gif";
try (Image image = Image.load(sourceFile);
// Cast the image into RasterImage
RasterImage rasterImage = (RasterImage) image) {
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.setBrightness(1);
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image
rasterImage.filter(image.getBounds(), options);
image.save(destName, new GifOptions());
}

Hareket Wiener Filtresi Uygulanması

Aspose.PSD, bir RasterImage üzerinde filtre uygulamak için MotionWienerFilterOptions sınıfını sağlar. Aşağıda verilen kod örneği, bir rastgele görüntüye hareket wiener filtresi nasıl uygulanırı göstermektedir.

String dataDir = Utils.getDataDir(ApplyMotionWienerFilters.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "motion_filter_out.gif";
try (Image image = Image.load(sourceFile);
// Cast the image into RasterImage
RasterImage rasterImage = (RasterImage) image) {
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.setGrayscale(true);
// Apply MedianFilterOptions filter to RasterImage object and Save the resultant image
rasterImage.filter(image.getBounds(), options);
image.save(destName, new GifOptions());
}

Bir Görüntüde Düzeltme Filtresi Uygulama

Bu makale, bir görüntü üzerinde düzeltme filtrelerini uygulamak için Aspose.PSD for Java kullanımını göstermektedir. Aspose.PSD API’leri, bu amaca ulaşmak için etkili ve kullanımı kolay yöntemler sunmaktadır. Aspose.PSD for Java, filtreleme için BilateralSmoothingFilterOptions ve SharpenFilterOptions sınıflarını sunmuştur. BilateralSmoothingFilterOptions sınıfı, bir tamsayıya ihtiyaç duyar. Düzeltme işlemini gerçekleştirmek için adımlar aşağıdaki gibidir:

  1. Görüntüyü Image sınıfı tarafından sunulan Load fabrika yöntemi kullanarak yükleyin.
  2. Görüntüyü RasterImage’e dönüştürün.
  3. BilateralSmoothingFilterOptions ve SharpenFilterOptions sınıflarının örneklerini oluşturun.
  4. RasterImage.Filter yöntemini çağırırken görüntü sınırlarını ve BilateralSmoothingFilterOptions sınıfı örneğini belirtin.
  5. RasterImage.Filter yöntemini çağırırken görüntü sınırlarını ve SharpenFilterOptions sınıfı örneğini belirtin.
  6. Kontrastı ayarlayın.
  7. Parlaklığı ayarlayın.
  8. Sonuçları kaydedin.

Aşağıdaki kod parçacığı, düzeltme filtresini nasıl uygulayacağınızı gösterir.

try (Image image = Image.load(dataDir + "sample.psd");
// Convert the image into RasterImage.
RasterImage rasterImage = (RasterImage) image) {
if (rasterImage == null) {
return;
}
// Get Bounds[rectangle] of image.
Rectangle rect = image.getBounds();
// Create an instance of BilateralSmoothingFilterOptions class with size
// parameter.
BilateralSmoothingFilterOptions bilateralOptions = new BilateralSmoothingFilterOptions(3);
// Create an instance of SharpenFilterOptions class.
SharpenFilterOptions sharpenOptions = new SharpenFilterOptions();
// Supply the filters to raster image.
rasterImage.filter(rect, bilateralOptions);
rasterImage.filter(rect, sharpenOptions);
// Adjust the contrast accordingly.
rasterImage.adjustContrast(-10);
// Set brightness using Binarize Bradley
rasterImage.binarizeBradley(80);
// Save the results to output path.
rasterImage.save(dataDir + "a1_out.jpg");
}

Bradley eşikleme algoritmasını kullanma

Görüntü eşikleme, grafik uygulamalarda kullanılır. Bir görüntünün eşiklenmesinin amacı pikselleri ya “koyu” ya da “açık” şeklinde sınıflandırmaktır. Aspose.PSD API’si, görüntüleri dönüştürürken Bradley eşikleme kullanmanıza olanak tanır. Aşağıdaki kod örneği, eşik değerini tanımlamanın ve ardından Bradley’e ait eşikleme algoritmasını nasıl çağırabileceğinizi gösterir.

String dataDir = Utils.getDataDir(Bradleythreshold.class) + "Conversion/";
String sourceFile = dataDir + "sample.psd";
String destName = dataDir + "binarized_out.png";
// Load an image
try (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());
}