O filtro de gaussiano possibilita a redução de ruídos na imagem através do cálculo da distribuição normal (gauss ou gaussiana) dos números correspondentes aos pixels da máscara utilizada. No OpenCV as máscaras, para a correta utilização do filtro, devem ser MxN, onde M e N sejam números ímpares, podendo ser M = N. A seguir encontram-se quatro imagens: a primeira é uma imagem na forma original de captura, a segunda é o resultado da aplicação do filtro gaussiano com máscara 3x3, a terceira é o resultado da aplicação de uma máscara 5x5 e por fim uma imagem resultante da aplicação do filtro gaussiano com máscara 7x7.
Imagem original - Modelo Lenna Söderberg
|
Imagem após a aplicação do filtro de mediana com máscara de 5 x 5 |
Imagem após a aplicação do filtro gaussiano com máscara de 7 x 7 |
Em linguagem C está o código-fonte utilizado para gerar a última imagem (com máscara de 7x7) a seguir. Perceba, através da primeira linha de código, que utilizamos a biblioteca OpenCV, a qual deve ser instalada e configurada para reproduzir o resultado do algoritmo.
#include <cv.h>#include <highgui.h>
int main(int argc, char *argv[]){IplImage *original;original = cvLoadImage("Lenna_Söderberg.png", -1);IplImage *imgFiltroGaussiana = cvClone(original);cvSmooth(original, imgFiltroGaussiana, CV_GAUSSIAN, 7, 7, 0, 0);cvSaveImage("Lenna_Söderberg_Gaussiana_7x7.jpg",imgFiltroGaussiana, 0);cvNamedWindow("Original",CV_WINDOW_AUTOSIZE);cvShowImage( "Original", original);cvNamedWindow("Filtro de Gaussiana",CV_WINDOW_AUTOSIZE);cvShowImage( "Filtro de Gaussiana", imgFiltroGaussiana);cvWaitKey(0);cvDestroyWindow("Original");cvDestroyWindow("Filtro de Gaussiana");cvReleaseImage(&original);cvReleaseImage(&imgFiltroGaussiana);return 0;}
No próximo post, demonstraremos a aplicação do operador morfológico de dilatação.
Nenhum comentário:
Postar um comentário