Exercícios Básicos no OpenCV

Post date: 06/03/2012 19:46:42

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).