Áp dụng Bộ lọc Trung vị và Wiener cho Hình ảnh trong Java

Trong bài đăng trên blog trước, chúng tôi đã trình bày cách thêm hiệu ứng mờ vào hình ảnh. Hôm nay, chúng tôi sẽ hướng dẫn bạn cách áp dụng bộ lọc trung vị và bộ lọc trung bình, thường được sử dụng để khử nhiễu và làm mịn hình ảnh. Vì vậy, chúng ta hãy xem cách áp dụng trình tập tin trung bình và wiener cho một hình ảnh theo lập trình trong Java.

API Java để áp dụng bộ lọc hình ảnh trung bình và Wiener - Tải xuống miễn phí

Để áp dụng bộ lọc trung vị và bộ lọc wiener trên hình ảnh, chúng tôi sẽ sử dụng Aspose.Imaging for Java. Nó là một API chỉnh sửa hình ảnh mạnh mẽ để xử lý hình ảnh từ bên trong các ứng dụng Java. Bạn có thể tải xuống API hoặc cài đặt nó bằng cách sử dụng các cấu hình Maven sau.

<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>

Áp dụng Bộ lọc Trung vị cho Hình ảnh trong Java

Bộ lọc trung vị là một kỹ thuật lọc kỹ thuật số phi tuyến, là một cách phổ biến để khử nhiễu hình ảnh. Sau đây là các bước để áp dụng bộ lọc trung vị cho hình ảnh trong Java.

Mẫu mã sau đây cho thấy cách áp dụng bộ lọc trung vị cho hình ảnh trong Java.

// Tải hình ảnh nhiễu
Image image = Image.load("jack.jpg");

// phân loại hình ảnh thành RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// Tạo một thể hiện của lớp MedianFilterOptions và đặt kích thước.
MedianFilterOptions options = new MedianFilterOptions(4);

// Áp dụng bộ lọc MedianFilterOptions cho đối tượng RasterImage.
rasterImage.filter(image.getBounds(), options);

// Lưu hình ảnh kết quả
image.save("Jac_median_denoise.jpg");

Dưới đây là hình ảnh trước và sau khi áp dụng bộ lọc trung vị.

Áp dụng Bộ lọc Trung vị cho Java Hình ảnh

Áp dụng Bộ lọc Gauss Wiener cho một hình ảnh trong Java

Gauss wiener là một phương pháp thường được sử dụng khác để phân loại hình ảnh bằng cách giảm thiểu nhiễu phụ gia và làm mờ. Sau đây là các bước để áp dụng bộ lọc gauss wiener cho một hình ảnh trong Java.

Mẫu mã sau đây cho thấy cách áp dụng bộ lọc gauss wiener cho một hình ảnh trong Java.

// Tải hình ảnh
Image image = Image.load("jack.jpg");

// phân loại hình ảnh thành RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// Tạo một thể hiện của lớp GaussWienerFilterOptions và đặt kích thước bán kính và giá trị mịn.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);

// Áp dụng bộ lọc GaussWienerFilterOptions cho đối tượng RasterImage.
rasterImage.filter(image.getBounds(), options);

// Lưu hình ảnh kết quả
image.save("Jac_guass_weiner.jpg");

Dưới đây là hình ảnh trước và sau khi áp dụng bộ lọc gauss wiener với tùy chọn thang độ xám.

Áp dụng bộ lọc Gauss Weiner để bôi trơn hình ảnh

Sau đây là hình ảnh trước và sau khi áp dụng bộ lọc gauss wiener mà không tạo cặn xám.

Áp dụng bộ lọc màu Gauss Weiner cho hình ảnh

Áp dụng Bộ lọc Motion Wiener cho một hình ảnh trong Java

Bộ lọc làm mờ chuyển động được sử dụng để loại bỏ hiện tượng nhòe của hình ảnh được tạo ra do các đối tượng chuyển động. Sau đây là các bước để áp dụng bộ lọc chuyển động cho hình ảnh trong Java.

Mẫu mã sau đây cho thấy cách áp dụng bộ lọc chuyển động cho hình ảnh trong Java.

// Tải hình ảnh
Image image = Image.load("jack.jpg");

// phân loại hình ảnh thành RasterImage
RasterImage rasterImage = (RasterImage) image;

if (rasterImage == null) {
	return;
}

// Tạo một thể hiện của lớp MotionWienerFilterOptions và đặt độ dài, giá trị mịn và góc.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale (true);

// Áp dụng bộ lọc MotionWienerFilterOptions cho đối tượng RasterImage.
rasterImage.filter(image.getBounds(), options);

// Lưu hình ảnh kết quả
image.save("Jac_motion_weiner.jpg");
Áp dụng Bộ lọc Weiner chuyển động cho hình ảnh trong Java

API lọc hình ảnh trung bình của Java và Wiener - Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí và áp dụng bộ lọc trung bình và bộ lọc trung bình cho hình ảnh mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách áp dụng các bộ lọc trung vị và wiener cho hình ảnh trong Java. Hơn nữa, chúng tôi đã đề cập đến cách giảm nhiễu của các đối tượng chuyển động trong ảnh. Bạn có thể dễ dàng sử dụng các tính năng này trong ứng dụng Java của mình để tích hợp khả năng chỉnh sửa hình ảnh.

Đọc thêm

Bạn có thể khám phá thêm về API xử lý hình ảnh Java bằng cách sử dụng tài liệu. Ngoài ra, bạn có thể chia sẻ các thắc mắc của mình với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm