Редактирование изображений используется в различных приложениях для управления изображениями для дальнейшей обработки. Мы написали серию блогов, т. е. обрезка, вращение, размытие и т. д., которые помогут вам реализовать функции редактирования изображений в ваших приложениях. В этой статье мы покажем вам, как применять медианный и винеровский фильтры, которые обычно используются для шумоподавления и сглаживания изображений. Итак, давайте посмотрим, как программно применить фильтры медианы и Винера к изображению на C#.
- C# API для применения фильтров изображений Median и Wiener
- Применение медианного фильтра к изображению в C#
- Примените фильтр Винера Гаусса к изображению
- Motion Wiener фильтрация изображения
C# API для применения медианных и винеровских фильтров изображений — скачать бесплатно
Aspose.Imaging for .NET — это замечательный API для реализации функций редактирования изображений в приложениях .NET. Мы будем использовать этот API для применения медианных и винеровских фильтров к изображениям. Вы можете либо скачать API, либо установить его из NuGet.
PM> Install-Package Aspose.Imaging
Применение медианного фильтра к изображению в C#
Медианный фильтр — это метод нелинейной цифровой фильтрации, который используется для уменьшения шума на изображениях. Ниже приведены шаги по применению медианного фильтра к изображению в C#.
- Сначала загрузите изображение с помощью метода Image.Load().
- Затем приведите изображение к типу RasterImage.
- Создайте экземпляр класса MedianFilterOptions и инициализируйте его размером прямоугольника.
- Примените медианный фильтр, используя метод RasterImage.Filter(Rectangle, MedianFilterOptions).
- Наконец, сохраните полученное изображение с помощью метода RasterImage.Save().
В следующем примере кода показано, как применить медианный фильтр к изображению в C#.
// Загрузите зашумленное изображение
using (Image image = Image.Load("jack.jpg"))
{
// Вставьте изображение в RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Создайте экземпляр класса MedianFilterOptions и установите размер
MedianFilterOptions options = new MedianFilterOptions(4);
// Применить фильтр и сохранить изображение
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.jpg");
}
Ниже представлено изображение до и после применения медианного фильтра.
Применение фильтра Винера Гаусса к изображению в C#
Другим широко используемым методом минимизации аддитивного шума и размытия изображений является метод Гаусса Винера. Ниже приведены шаги по применению фильтра Винера Гаусса к изображению в C#.
- Сначала загрузите изображение с помощью метода Image.Load().
- Затем приведите изображение к типу RasterImage.
- Создайте экземпляр класса GaussWienerFilterOptions и инициализируйте его размером радиуса и значением Smooth.
- (Необязательно) Чтобы получить изображение в градациях серого, установите для свойства GaussWienerFilterOptions.Grayscale значение true.
- Примените фильтр Гаусса Винера, используя метод RasterImage.Filter(Rectangle, GaussWienerFilterOptions).
- Наконец, сохраните полученное изображение с помощью метода RasterImage.Save().
В следующем примере кода показано, как применить фильтр Винера Гаусса к изображению на C#.
// Загрузите зашумленное изображение
using (Image image = Image.Load("jack.jpg"))
{
// Вставьте изображение в RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Создайте экземпляр класса GaussWienerFilterOptions и установите размер радиуса и значение сглаживания.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// Примените фильтр MedianFilterOptions к объекту RasterImage и сохраните полученное изображение.
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.jpg");
}
Ниже приведено изображение до и после применения фильтра Винера Гаусса с опцией оттенков серого.
Ниже приведено изображение до и после применения фильтра Винера Гаусса без шкалы серого.
Применение фильтра Motion Wiener к изображению в C#
Винеровский фильтр движения используется для устранения размытия изображения, возникающего из-за движущихся объектов. Ниже приведены шаги по применению фильтра Винера движения к изображению в C#.
- Сначала загрузите изображение с помощью метода Image.Load().
- Затем приведите изображение к типу RasterImage.
- Создайте экземпляр класса MotionWienerFilterOptions и инициализируйте его длиной, значением сглаживания и углом.
- Примените фильтр Motion Wiener с помощью метода RasterImage.Filter(Rectangle, MotionWienerFilterOptions).
- Наконец, сохраните полученное изображение с помощью метода RasterImage.Save().
В следующем примере кода показано, как применить фильтр Винера движения к изображению в C#.
// Загрузите зашумленное изображение
using (Image image = Image.Load("jack.jpg"))
{
// Вставьте изображение в RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Создайте экземпляр класса MotionWienerFilterOptions и установите длину, значение сглаживания и угол
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// Примените фильтр MedianFilterOptions к объекту RasterImage и сохраните полученное изображение.
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}
C# Median и Wiener Image Filtering API — бесплатная лицензия
Вы можете получить бесплатную временную лицензию и применять медианный и винеровский фильтры к изображениям без ограничений оценки.
Вывод
В этой статье вы узнали, как применять медианный фильтр и фильтр Винера к изображениям в C#. Кроме того, мы рассмотрели, как уменьшить шум движущихся объектов на изображении. Вы можете легко использовать эти функции в своем приложении C# для интеграции возможностей редактирования изображений.
Читать далее
Вы можете узнать больше об API обработки изображений .NET, используя документацию. Кроме того, вы можете поделиться с нами своими вопросами через наш форум.