在 Java 中對圖像應用中值和維納濾波器

上一篇博文 中,我們演示瞭如何為圖像添加模糊效果。今天,我們將向您展示如何應用中值濾波器和維納濾波器,它們通常用於對圖像進行去噪和平滑處理。因此,讓我們看看如何在 Java 中以編程方式將中值和維納濾波器應用於圖像。

應用中值和維納圖像過濾器的 Java API - 免費下載

要在圖像上應用中值和維納濾波器,我們將使用 Aspose.Imaging for Java。它是一個功能強大的圖像編輯 API,用於在 Java 應用程序中操作圖像。您可以 下載 API 或使用以下 Maven 配置安裝它。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>22.9</version>
</dependency>

在 Java 中對圖像應用中值濾波器

中值濾波是一種非線性數字濾波技術,是一種流行的圖像去噪方法。以下是在 Java 中將中值濾波器應用於圖像的步驟。

以下代碼示例顯示瞭如何在 Java 中將中值濾波器應用於圖像。

// 加載嘈雜的圖像
Image image = Image.load("jack.jpg");

// 將圖像轉換為 RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// 創建 MedianFilterOptions 類的實例並設置大小。
MedianFilterOptions options = new MedianFilterOptions(4);

// 將 MedianFilterOptions 過濾器應用於 RasterImage 對象。
rasterImage.filter(image.getBounds(), options);

// 保存生成的圖像
image.save("Jac_median_denoise.jpg");

下面是應用中值濾波器之前和之後的圖像。

將中值濾波器應用於圖像 Java

將高斯維納濾波器應用於 Java 中的圖像

高斯維納是另一種常用的圖像分級方法,它通過最小化加性噪聲和模糊來進行圖像分級。以下是在 Java 中將高斯維納濾波器應用於圖像的步驟。

以下代碼示例顯示瞭如何在 Java 中將高斯維納濾波器應用於圖像。

// 加載圖像
Image image = Image.load("jack.jpg");

// 將圖像轉換為 RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// 創建 GaussWienerFilterOptions 類的實例並設置半徑大小和平滑值。
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);

// 將 GaussWienerFilterOptions 過濾器應用於 RasterImage 對象。
rasterImage.filter(image.getBounds(), options);

// 保存生成的圖像
image.save("Jac_guass_weiner.jpg");

下面是應用帶有灰度選項的高斯維納濾波器之前和之後的圖像。

將高斯韋納濾波器應用於圖像灰度化

下面是應用高斯維納濾波器之前和之後的圖像,沒有灰度。

將 Gauss Weiner 濾色器應用於圖像

將運動維納濾波器應用於 Java 中的圖像

運動維納濾波器用於消除由於移動物體而產生的圖像模糊。以下是在 Java 中將運動維納濾波器應用於圖像的步驟。

以下代碼示例顯示瞭如何在 Java 中將運動維納濾波器應用於圖像。

// 加載圖像
Image image = Image.load("jack.jpg");

// 將圖像轉換為 RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// 創建 MotionWienerFilterOptions 類的實例並設置長度、平滑值和角度。
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale(true);

// 將 MotionWienerFilterOptions 過濾器應用於 RasterImage 對象。
rasterImage.filter(image.getBounds(), options);

// 保存生成的圖像
image.save("Jac_motion_weiner.jpg");
在 Java 中將 Motion Weiner 過濾器應用於圖像

Java 中值和維納圖像過濾 API - 獲得免費許可證

您可以 獲得免費的臨時許可證 並在沒有評估限制的情況下對圖像應用中值和維納濾波器。

結論

在本文中,您學習瞭如何在 Java 中對圖像應用中值和維納濾波器。此外,我們還介紹瞭如何減少圖像中移動物體的噪聲。您可以輕鬆地在 Java 應用程序中使用這些功能來集成圖像編輯功能。

閱讀更多

您可以使用 文檔 探索有關 Java 圖像處理 API 的更多信息。此外,您可以通過我們的 論壇 與我們分享您的疑問。

也可以看看