Disciplinas‎ > ‎CG‎ > ‎

Exercícios Básicos no OpenCV

postado em 6 de mar de 2012 11:46 por Prof. Rodrigo Costa   [ 6 de mar de 2012 11:53 atualizado‎(s)‎ ]
O Objetivo da aula de hoje consiste em testar alguns filtros e ver a influência dos diversos tipos de filtros em OpenCV.

Inicialmente, deve-se carregar cada uma das imagens em openCV. E inserir a resposta no questionário de suas observações.

Dicas:
1) Para carregar uma imagem usa-se o
cvLoadImage("c:\nomeDoArquivo.png",FORMATO_DE_CORES); //

em que o formato de cor pode ser:
  • CV_LOAD_IMAGE_COLOR: é a maneira padrão de carregar a imagem. Essa definição força a imagem a ser carregada como RGB.
  • CV_LOAD_IMAGE_GRAYSCALE: Opção utilizada quando a imagem é uma imagem em tons de cinza.
  • CV_LOAD_IMAGE_ANYCOLOR: Caso seja utilizada essa opção, a forma da imagem no arquivo será mantida.
  • CV_LOAD_IMAGE_ANYDEPTH: Ao serem carregadas, as imagens passam a ter somente 8 bits por pixel por canal de cor. Esse flag é utilizado para manter a precisão original do arquivo (por exemplo, uma imagem RGB pode ter 16 bits por canal de cor por pixel).
Talvez vocês precisem criar uma imagem nova. Para isto, deve-se chamar a função :
IplImage Img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);

O Objetivo da Prática consiste em testar os parâmetros da função cvSmooth, uma função de pré-processamento, capaz de processar imagens com filtros:
  • CV_BLUR_NO_SCALE: Filtro que calcula a soma de todos os pixels de uma janela de tamanho (size1 x size2)
  • CV_BLUR: Filtro da média: calcula a média de todos os pixels de uma janela (size1 x size2)
  • CV_GAUSSIAN: suaviza a imagem utilizando uma ponderação de gaussiana utilizando uma janela (size1 x size1) utilizando dois parametros de suavização (sigma1 e sigma2) que definem o formato da gaussiana
  • CV_MEDIAN: calcula o valor da mediana de uma janela (size1 x size2) da imagem.
exemplo:
IplImage * fonte;
IplImage * dest;
tamanho1 = 11;
tamanho2 = 0; // pois não é usado.
cvSmooth(fonte, dest, CV_GAUSSIAN,tamanho1, tamanho2, sigma1, sigma2);

Protótipos das Funções:
IplImage* cvCreateImage(CvSize size, int depth, int channels);
IplImage* cvLoadImage( char* filename, int flags);
void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int size1=3, int size2=0, double sigma1=0, double sigma2=0 );

Exercício

Testar o efeito da variação de parâmetros de filtragem utilizando os diferentes filtros para a Figura a seguir. Expliquem o que ocorreu com a variação dos parâmetros e máscaras (tipos de filtros).



Testar o efeito da variação de parâmetros de filtragem utilizando os diferentes filtros para a Figura a seguir. Expliquem o que ocorreu com a variação dos parâmetros e máscaras (tipos de filtros).


Testar o efeito da variação de parâmetros de filtragem utilizando os diferentes filtros para a Figura a seguir. Expliquem o que ocorreu com a variação dos parâmetros e máscaras (tipos de filtros).


Testar o efeito da variação de parâmetros de filtragem utilizando os diferentes filtros para a Figura a seguir. Expliquem o que ocorreu com a variação dos parâmetros e máscaras (tipos de filtros).


Comments