Aplicar filtros medianos y Wiener a imágenes en C#

La edición de imágenes se utiliza en varias aplicaciones para manipular imágenes para su posterior procesamiento. Hemos escrito una serie de blogs, es decir, recortar, rotar, borrar, etc., que son útiles para implementar funciones de edición de imágenes en sus aplicaciones. En este artículo, le mostraremos cómo aplicar los filtros mediano y wiener, que se usan comúnmente para eliminar el ruido y suavizar las imágenes. Entonces, veamos cómo aplicar archivadores medianos y wiener a una imagen mediante programación en C#.

API de C# para aplicar filtros de imagen Mediana y Wiener - Descarga gratuita

Aspose.Imaging for .NET es una API increíble para implementar funciones de edición de imágenes en aplicaciones .NET. Usaremos esta API para aplicar filtros medianos y wiener en las imágenes. Puede descargar la API o instalarla desde NuGet.

PM> Install-Package Aspose.Imaging

Aplicar filtro mediano a una imagen en C#

El filtro mediano es una técnica de filtrado digital no lineal, que se utiliza para reducir el ruido de las imágenes. Los siguientes son los pasos para aplicar un filtro mediano a una imagen en C#.

El siguiente ejemplo de código muestra cómo aplicar un filtro mediano a una imagen en C#.

// Carga la imagen ruidosa 
using (Image image = Image.Load("jack.jpg"))
{
    // Castear la imagen en RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // Cree una instancia de la clase MedianFilterOptions y establezca el tamaño
    MedianFilterOptions options = new MedianFilterOptions(4);
    
    // Aplicar filtro y guardar imagen
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_median.jpg");
}

A continuación se muestra la imagen antes y después de aplicar el filtro mediano.

Aplicar filtro mediano a la imagen C#

Aplique el filtro Gauss Wiener a una imagen en C#

Otro método comúnmente utilizado para minimizar el ruido aditivo y la borrosidad en las imágenes es gauss wiener. Los siguientes son los pasos para aplicar el filtro Wiener de Gauss a una imagen en C#.

El siguiente ejemplo de código muestra cómo aplicar un filtro Wiener de Gauss a una imagen en C#.

// Carga la imagen ruidosa 
using (Image image = Image.Load("jack.jpg"))
{
    // Castear la imagen en RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // Cree una instancia de la clase GaussWienerFilterOptions y establezca el tamaño del radio y el valor suave
    GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
    options.Grayscale = true;

    // Aplique el filtro MedianFilterOptions al objeto RasterImage y guarde la imagen resultante
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_guass.jpg");
}

A continuación se muestra la imagen antes y después de aplicar el filtro gauss wiener con la opción de escala de grises.

Aplicar el filtro Gauss Weiner a la escala de grises de la imagen

La siguiente es la imagen antes y después de aplicar el filtro Wiener de Gauss sin escala de grises.

Aplique el filtro de color Gauss Weiner a la imagen

Aplique el filtro Motion Wiener a una imagen en C#

El filtro Wiener de movimiento se utiliza para eliminar la borrosidad de una imagen que se produce debido a los objetos en movimiento. Los siguientes son los pasos para aplicar el filtro Wiener de movimiento a una imagen en C#.

El siguiente ejemplo de código muestra cómo aplicar un filtro Wiener de movimiento a una imagen en C#.

// Carga la imagen ruidosa 
using (Image image = Image.Load("jack.jpg"))
{
    // Castear la imagen en RasterImage
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // Cree una instancia de la clase MotionWienerFilterOptions y establezca la longitud, el valor suave y el ángulo
    MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
    options.Grayscale = true;

    // Aplique el filtro MedianFilterOptions al objeto RasterImage y guarde la imagen resultante
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_MotionWiener.jpg");
}
Aplique el filtro Motion Weiner a la imagen en C#

API de filtrado de imágenes Wiener y Median de C#: obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita y aplicar filtros medianos y wiener a las imágenes sin limitaciones de evaluación.

Conclusión

En este artículo, aprendió a aplicar filtros medianos y wiener a imágenes en C#. Además, hemos cubierto cómo reducir el ruido de los objetos en movimiento en una imagen. Puede usar fácilmente estas características en su aplicación C# para integrar capacidades de edición de imágenes.

Lee mas

Puede explorar más sobre la API de procesamiento de imágenes de .NET utilizando documentación. Además, puede compartir sus consultas con nosotros a través de nuestro foro.

Ver también