Giter VIP home page Giter VIP logo

arturoemmanueltoledoaguado / img_filtro Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 5.56 MB

Matlab R2019b program using mean and Gaussian filtering for images with Gaussian, uniform multiplicative and impulsive (salt and pepper) noise, plus a connectivity mask 4 is proposed to compare with the filters.

License: Eclipse Public License 2.0

MATLAB 100.00%
image-processing matlab procesamiento-de-imagenes spatial-filters soft-filters filtros-espaciales filtros-suavisantes ipn upiita

img_filtro's Introduction

Introducción 📖

Se propone realizar un programa que pueda usar conectividad 4 y proponer una máscara propia del mismo tipo de conectividad; comparar los resultados con el filtro de la media y el filtro gaussiano, pero antes de comenzar:

¿Qué es el procesamiento digital de imagenes (PDI)? 🤷‍♂️🤷‍

PDI se puede definir como el conjunto de procesamientos que se realizan sobre una imagen digital ya sea para realizar su almacenamiento, transmisión o tratamiento.

Lectura de imágenes en matlab 👓

Para leer una imágen en matlab se utiliza la función imread y se asigna a una variable que representara a la imágen.

imagen = imread('ruta/nombre de la imágen.extensión');

VECINDARIO DEL PIXEL 🏙

Algo que tiene mucho peso en las imágenes es el concepto de conectividad. Hay muchas operaciones en el procesamiento de imágenes que utilizan un área, llamada área de influencia para tratar un solo pixel.

Se consideran diferentes tipos de conectividad, por ejemplo conectividad 4 o conectividad 8, donde se consideran los pixeles conectados en diagonal.

1

  • Conectividad 4: Se consideran N,W,E,S
  • Conectividad 8: Se consideran N,W,E,S,NW,NE,SE,SW

FILTROS ESPACIALES 👩‍🚀👩‍🚀

El empleo de máscaras para el procesamiento de las imágenes se denomina frecuentemente filtrado espacial y las máscaras se denominan filtros espaciales.

Podemos clasificarlos en:

  • Filtros suavisantes
  • Filtros resaltantes

FILTROS SUAVISANTES 🎛🎛

Estos filtros se emplean para reducir ruido, pero dejan la imagen un poco borrosa.

Hay filtros suavisantes lineales y no lineales

Filtros lineales

En los filtros espaciales, el valor del filtro en un pixel está determinado como una combinación lineal de los valores de los pixeles vecinos.

En este tipo de filtros se realiza una operación de convolución entre la imagen a ser filtrada y una máscara.

El principal inconveniente de estas técnicas es el enturbiamiento que se produce en la imagen, provocando bordes difuminados, por lo que tienen que ser utilizados con precaución.

Los más usados son: filtro de la media y filtro gaussiano

Filtro de la media

Este filtro es quizá el más sencillo de los filtros lineales.

Les da pesos iguales a todos los pixeles en el vecindario para reducir la cantidad de variaciones de intensidad entre pixeles vecinos.

  • Nota.- Cada pixel se remplaza por la media de los pixeles vecinos
1 1 1
1 1 1
1 1 1

En Matlab la función que permite realizar un filtro de la media es imfilter

imfiltrada=imfilter(A,H,option1,option2,...)

Esta función filtra la imagen A con el filtro multidimensional H, los parámetros option1, option2, ..., son opciones de frontera, de tamaño de la imagen de salida y opciones de correlación o convolución.

La función de Matlab que me permite generar el filtro H es: fspecial

H=fspecial(type,parametros)

La función fspecial crea filtros bidimensionales del tipo especificado por type (filtro gaussiano, un detector de bordes de sobel, un operador laplaciano, un filtro de la media, ...)

Los parámetros dependen del tipo de filtro

close all;
clear all;
im = imread('cerezo','jpg');
imshow(im);title('original');

imn=imnoise(im,'gaussian');
figure()
imshow(imn);tilte('Gaussiano');

media=fspecial('average');%ventana 3x3
imfilt=imfilter(imn,media);
figure()
imshow(imfilt);title('filtro de media 3x3');

media=fspecial('average',[9,9]);%ventana 9x9
imfilt=imfilter(imn,media);
figure()
imshow(imfilt);title('filtro de media 9x9');
Filtro gaussiano

Este filtro tiene una media ponderada, los pesos de la matriz toman la forma de la campana de Gauss.

2

La varianza, indica el nivel de suavizado:

  • Varianza grande: Campana más ancha, mayor suavizado
  • Varianza pequeña: Campana más estrecha, menor suavizado
ImagenFiltrada=fspecial('gaussian',tamaño del filtro, sigma);
  • Tamaño del filtro: Es un vector que especifica el número de filas o columnas, por default el filtro es de 3x3
  • Sigma ($\sigma$): Es la desviación estandar, por default es de 0.5
0.0113 0.0838 0.0113
0.0838 0.6193 0.0838
0.0113 0.0838 0.0113

Máscara de filtro Gaussiano de 3x3 con sigma de 0.5

  • Nota.- La mascara de este filtro depende del valor de sigma, por eso no existe una mascara por defecto como tal
  • Nota.- Las mascaras modifican el valor del centro de la imagen donde se coloca dicha mascara (la mascara no se modifica)

Resultados

Se usaron las siguientes imagenes para esta practica:

A cada una de las imagenesse le añadio Ruido Gaussiano, impulsivo y multiplicativo; primero se usaron los filtros de la media y Gaussiano (4x4) que ofrece por defecto Matlab, dando los siguientes resultados:

Posteriormente se propusieron los siguientes filtros; para el de la media se propuso la siguiente matriz

1.5 1 1 1.5
1 1 1 1
1 1 1 1
1.5 1 1 1.5

Mientras que para el filtro Gaussiano se uso una $\sigma$ = 1.1 con una $\mu$=2 obteniendo la siguiente matriz

0.0088 0.0695 0.0695 0.0088
0.0695 0.2399 0.2399 0.0695
0.0695 0.2399 0.2399 0.0695
0.0088 0.0695 0.0695 0.0088

A continuación se muestran los resutados obtenidos

Código

img_filtro's People

Contributors

arturoemmanueltoledoaguado avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.