Filtro Gaussiano
Visin Artificial
Dr. Eddie Helbert Clemente Torres
Septimo Escamilla Isaac.
M09760116
Maestra en Ciencia de la Ingerira.
Instituto Tecnolgico de Ensenada.
I.
Introduccin
La idea del filtrado gaussiano adaptable es aplicar filtros gaussianos a la imagen variando la desviacin estndar
del filtro () en funcin del gradiente local de cada regin de la imagen. Para estimar el gradiente en diferentes
regiones de la imagen se utiliza el concepto de escala local. La escala se refiere al nivel de detalle que se tiene
en una imagen; es decir, a escalas grandes podemos observar todos los detalles de los objetos, y al ir reduciendo
la escala se va perdiendo informacin (como si fuera una imagen borrosa). Una forma de ilustrar la escala es
mediante el filtrado de la imagen con filtros gaussianos de diferentes , que al ir aumentando va reduciendo la
escala.
II.
Desarrollo
Programa
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
void conv2(Mat gris)
{
//kernel 2x2
Mat dst1,k_2_2;
k_2_2 =(Mat_<float>(2,2) <<
Matriz
);
// Filtro 2x2
filter2D(gris, dst1, -1 , k_2_2, Point( -1, -1 ), 0, BORDER_DEFAULT );
namedWindow( "Filtro Gaussiano 0.5", CV_WINDOW_AUTOSIZE );imshow( "Filtro
Gaussiano 0.5", dst1 );
// kernel 5x5
Mat dst2,k_5_5;
k_5_5 =(Mat_<float>(5,5) <<
Matriz
);
// Filtro 5x5
filter2D(gris, dst2, -1 , k_5_5, Point( -1, -1 ), 0, BORDER_DEFAULT );
namedWindow( "Filtro Gaussiano 1", CV_WINDOW_AUTOSIZE );imshow( "Filtro
Gaussiano 1", dst2 );
// kernel 11x11
Mat dst3,k_11_11;
k_11_11 =(Mat_<float>(11,11) <<
Matriz
);
// Filtro 11x11
filter2D(gris, dst3, -1 , k_11_11, Point( -1, -1 ), 0, BORDER_DEFAULT );
namedWindow( "Filtro Gaussiano 2", CV_WINDOW_AUTOSIZE );imshow( "Filtro
Gaussiano 2", dst3 );
//kernel 23x23
Mat dst4,k_23_23;
k_23_23 =(Mat_<float>(23,23) <<
Matrzi
);
// Filtro 23x23
filter2D(gris, dst4, -1 , k_23_23, Point( -1, -1 ), 0, BORDER_DEFAULT );
namedWindow( "Filtro Gaussiano 4", CV_WINDOW_AUTOSIZE );imshow( "Filtro
Gaussiano 4", dst4 );
//kernel 47x47
Mat dst5,k_47_47;
k_47_47 =(Mat_<float>(47,47) <<
Matriz
);
// Filtro 47x47
filter2D(gris, dst5, -1 , k_47_47, Point( -1, -1 ), 0, BORDER_DEFAULT );
namedWindow( "Filtro Gaussiano 8", CV_WINDOW_AUTOSIZE );imshow( "Filtro
Gaussiano 8", dst5 );
//kernel 95x95
Mat dst6,k_95_95;
k_95_95 =(Mat_<float>(95,95) <<
Matriz
);
// Filtro 95x95
filter2D(gris, dst6, -1 , k_95_95, Point( -1, -1 ), 0, BORDER_DEFAULT );
namedWindow( "Filtro Gaussiano 16", CV_WINDOW_AUTOSIZE );imshow( "Filtro
Gaussiano 16", dst6 );
}
int main ( int argc, char** argv )
{
Mat gris,src;
// imagen
src = imread( "ruido.jpg" );
cvtColor( src, gris, CV_BGR2GRAY );
namedWindow( "imagen gris", CV_WINDOW_AUTOSIZE );imshow( "imagen gris",
gris );
namedWindow( "imagen color", CV_WINDOW_AUTOSIZE );imshow( "imagen color",
src );
if( !gris.data ) { return -1; }
conv2(gris);
waitKey(0);
return 0;
}
Resultados
1er- Imagen a color
2da-Imagen en escala de grises
3ra-Imagen con primer filtro
5ta-Imagen con 3 filtro
4ta-Imagen con el segundo filtro
6ta-Imagen con 4 filtro
III.
Conclusin
Lo que pude notar que al aumentar el tamao de la matriz de convolucion el ruido en la
imagen disminuye, la 3ra y 4ta el ruido de la imagen original desaparicin casi por completo
y en las ltimas 2 imgenes ya no se puede distinguir detalles en ellas.
IV.
Bibliografa
[1] L. Enrique Sucar, Giovani Gmez. (--). Visin Computacional. 27 de octubre del
2016, de Instituto Nacional de Astrofsica, ptica y Electrnica Sitio web:
http://ccc.inaoep.mx/~esucar/Libros/vision-sucar-gomez.pdf