Chỉnh sửa hình ảnh được sử dụng trong các ứng dụng khác nhau để chỉnh sửa hình ảnh để xử lý thêm. Chúng tôi đã viết một loạt blog, tức là cắt xén, xoay, làm mờ, v.v., rất hữu ích để bạn triển khai các tính năng chỉnh sửa hình ảnh trong ứng dụng của mình. Trong bài viết này, chúng tôi sẽ giới thiệu cho bạn cách áp dụng các bộ lọc trung vị và 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 làm thế nào để á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 C#.
- API C# để áp dụng bộ lọc hình ảnh trung bình và Wiener
- Áp dụng Bộ lọc Trung vị cho Hình ảnh trong C#
- Áp dụng Bộ lọc Gauss Wiener cho một hình ảnh
- Lọc Motion Wiener của một hình ảnh
API C# để áp dụng bộ lọc hình ảnh trung bình và Wiener - Tải xuống miễn phí
Aspose.Imaging for .NET là một API tuyệt vời để triển khai các tính năng chỉnh sửa hình ảnh trong các ứng dụng .NET. Chúng tôi sẽ sử dụng API này để áp dụng bộ lọc trung bình và bộ lọc trung bình trên hình ảnh. Bạn có thể tải xuống API hoặc cài đặt nó từ NuGet.
PM> Install-Package Aspose.Imaging
Áp dụng Bộ lọc Trung vị cho Hình ảnh trong C#
Bộ lọc trung vị là một kỹ thuật lọc kỹ thuật số phi tuyến, được sử dụng để giảm nhiễu từ hình ảnh. Sau đây là các bước để áp dụng bộ lọc trung vị cho hình ảnh trong C#.
- Đầu tiên, tải hình ảnh bằng phương thức Image.Load().
- Sau đó, truyền hình ảnh sang loại RasterImage.
- Tạo một thể hiện của lớp MedianFilterOptions và khởi tạo nó với kích thước của hình chữ nhật.
- Áp dụng bộ lọc trung vị bằng phương pháp RasterImage.Filter (Rectangle, MedianFilterOptions).
- Cuối cùng, lưu hình ảnh kết quả bằng phương thức RasterImage.Save().
Mẫu mã sau đây cho thấy cách áp dụng bộ lọc trung vị cho hình ảnh trong C#.
// Tải hình ảnh nhiễu
using (Image image = Image.Load("jack.jpg"))
{
// Chuyển hình ảnh vào RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Tạo một phiên bản của lớp MedianFilterOptions và đặt kích thước
MedianFilterOptions options = new MedianFilterOptions(4);
// Áp dụng bộ lọc và lưu hình ảnh
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.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 Gauss Wiener cho một hình ảnh trong C#
Một phương pháp thường được sử dụng khác để giảm thiểu nhiễu phụ gia và làm mờ trong ảnh là gauss wiener. Sau đây là các bước để áp dụng bộ lọc gauss wiener cho hình ảnh trong C#.
- Đầu tiên, tải hình ảnh bằng phương thức Image.Load().
- Sau đó, truyền hình ảnh sang loại RasterImage.
- Tạo một thể hiện của lớp GaussWienerFilterOptions và khởi tạo nó với kích thước bán kính và giá trị mịn.
- (Tùy chọn) Để có hình ảnh thang độ xám, hãy đặt thuộc tính GaussWienerFilterOptions.Grayscale thành true.
- Áp dụng bộ lọc gauss wiener bằng phương pháp RasterImage.Filter (Rectangle, GaussWienerFilterOptions).
- Cuối cùng, lưu hình ảnh kết quả bằng phương thức RasterImage.Save().
Mẫu mã sau đây cho thấy cách áp dụng bộ lọc gauss wiener cho hình ảnh trong C#.
// Tải hình ảnh nhiễu
using (Image image = Image.Load("jack.jpg"))
{
// Chuyển hình ảnh vào RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Tạo một phiên bả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.Grayscale = true;
// Áp dụng bộ lọc MedianFilterOptions cho đối tượng RasterImage và lưu hình ảnh kết quả
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.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.
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 Motion Wiener cho Hình ảnh trong C#
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 ảnh trong C#.
- Đầu tiên, tải hình ảnh bằng phương thức Image.Load().
- Sau đó, truyền hình ảnh sang loại RasterImage.
- Tạo một thể hiện của lớp MotionWienerFilterOptions và khởi tạo nó với độ dài, giá trị mịn và góc.
- Áp dụng bộ lọc chuyển động bằng cách sử dụng phương pháp RasterImage.Filter (Rectangle, MotionWienerFilterOptions).
- Cuối cùng, lưu hình ảnh kết quả bằng phương thức RasterImage.Save().
Mẫu mã sau đây cho thấy cách áp dụng bộ lọc chuyển động cho hình ảnh trong C#.
// Tải hình ảnh nhiễu
using (Image image = Image.Load("jack.jpg"))
{
// Chuyển hình ảnh vào RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Tạo một phiên bản của lớp MotionWienerFilterOptions và đặt chiều dài, giá trị mịn và góc
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// Áp dụng bộ lọc MedianFilterOptions cho đối tượng RasterImage và lưu hình ảnh kết quả
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}
API lọc hình ảnh trung bình của C# 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à trung vị cho hình ảnh trong C#. 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 C# 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 .NET 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.