Descrição do projeto 2 Quantizar imagens em 17 níveis de cinza para representação em preto e branco usando a técnica de limiarização, ordered dithering, dispersed dithering e floyd-steinberg. Ferramentas utilizadas Visual C++ 6.0, Rational Rose 4.0, APIs OpenGL e as bibliotecas auxiliares GLU e GLUT segundo a implementação Mesa 5.0. Comentários Para o desenvolvimento desse projeto é essencial um bom entendimento das funções glReadPixels e glDrawPixels. Uma estrutura eficiente para leitura dos dados da imagem deve ser implementada, afim de que, após a leitura, esses dados sejam armazenados em matrizes. Com os dados devidamente armazenados em matrizes, calcula-se o histograma da imagem e a quantização em 17 níveis de cinza. Aplica-se então os algoritmos de limiarização, ordered dithering, dispersed dithering e floyd-steinberg para reduzir a imagens para preto e branco. Estrutura básica do programa (download do programa - projeto 2) void histogram() { - calcula o histograma da imagem (valor dos intervalos para 17 níveis de cinza); } void read_picture_file(char *filename) { - lê arquivo de imagem e armazena os dados em uma matriz 2x2; } void init(void) { - cor de fundo e etc. } void display() { - desenha imagem original na tela; - desenha histograma da imagem; - desenha imagem tratada por uma das técnicas; } void reshape(int w, int h) { - definições de glViewport e glOrtho; } void main(int argc, char** argv) {} Resultados
e-mail Projeto 2 Projeto 3 Projeto 1 HomeDCA - FEEC - UNICAMP
Home - Projeto 1 - Projeto 2 - Projeto 3