Home
Descrição do Trabalho
Contents
1. for SOURCE II REIT dede dede dede dede ee dd ee td void sourceDisplay void Source Display J E tese dede eee dede dede dee de dd dd INTE T IR TRAIT TET ATT I Reshape function for SOURCE I LL FERRARA SRERS a SELES AER DD CRRA ERS EE void sourceReshape int w int h glViewport 0 0 GLsizei w GLsizei h glMatrixMode GL_PROJECTION glLoadldentity gluOrtho2D 0 0 w 0 0 h giMatrixMode GL MODELVIEW glLoadldentity RR RTARTA T IR RIT ITT IIT RR e dt I Display function for TARGET I REIT IIIT TRI TITTIES T HII ee ti void targetDisplay void Target Display RRR RRR IIIT dee dede dede dd de IE TINT ed I Reshape function for TARGET I 353684 e ESSER EES EERERSSES LR E AER OR ELE ES LR RARER LER ERERS AR PERERA ERA COREE void sourceReshape int w int h glViewport 0 0 GLsizei w GLsizei h giMatrixMode GL PROJECTION glLoadldentity gluOrtho2D 0 0 w 0 0 h glMatrixMode GL_MODELVIEW glLoadldentity 4 Sincroniza o dos conte dos mostrados em todas as janelas Uma forma simples de garantir o sincronismo do que exibido em todas as janelas utilizar um la o que percorre todas as janelas de interesse e chamar a fun o glutPostRedisplay para cada uma delas O fragmento de c digo a seguir ilustra isso para o caso de mudan a no modo de renderiza o e mudan a no campo de vis o switch Option case LUMINANCE Source Com
2. INF01046 Fundamentos de Processamento de Imagens Prof Manuel M Oliveira 1 Trabalho de Implementa o Total de Pontos do Trabalho 100 OBJETIVO O objetivo deste trabalho familiarizar os estudantes com algumas opera es importantes envolvendo imagens Mais especificamente ao completar este trabalho voc ter aprendido a a Ler e gravar arquivos de imagens b Exibir o conte do de um arquivo de imagem c Converter uma imagem colorida em uma imagem em tons de cinza d Aplicar um esquema simples para quantiza o de imagens e Usar a biblioteca GLUT para gerenciar os servi os de janela Parte I Leitura e Grava o de Arquivos de Imagens 20 pontos 1 Escreva um programa para ler um arquivo de imagem no formato JPEG e regrave o com um outro nome Esta tarefa simples tem o objetivo de familizariz lo com o uso de bibliotecas para leitura e grava o de arquivos Para completar a Parte I deste trabalho voc precisar dos seguintes arquivos 1 jpeg lib uma biblioteca est tica para leitura e grava o de arquivos JPEG ii jconfig h e jmorecfg h arquivo de cabe alho a serem utilizados com a bilbioteca iii jpeg api32 lib uma API para a biblioteca jpeg lib que eu preparei para facilitar o trabalho de voc s iv jpeg_api h um arquivo de cabe alho para a API Voc dever incluir os arquivos lib na sua instala o e informar ao Visual C sobre eles na caixa de di logo acess vel via project gt s
3. ettings gt link Teste o seu programa com as imagens disponibilizadas para o trabalho Ap s verifique os tamanhos das imagens em cada par original e arquivo gravado Voc percebe alguma diferen a visual entre eles Alguma diferen a nos tamanhos dos arquivos Caso haja diferen a nos tamanhos de arquivos fa a uma pequena pesquisa na web sobre arquivos JPEG e tente explicar a diferen a observada Parte II Leitura Exibi o e Opera es sobre Imagens 80 pontos 1 Estenda o programa que voc desenvolveu na Parte I para exibir as imagens lidas e utilize GLUT para fazer a ger ncia de janela para voc O seu programa deve exibir duas janelas separadas Na janela da esquerda mostre a imagem original na janela da direita mostre o resultado da opera o realizada sobre a imagem Opera es a serem implementadas a 25 pontos Espelhamento horizontal e vertical da imagem original neste caso excepcionalmente mostre o resultado na janela da esquerda Ao espelhar verticalmente horizontalmente a imagem um n mero par de vezes voc dever obter novamente a imagem original Procure implementar estas opera es de modo eficiente dica considere o uso do comando memcpy sempre que poss vel ao inv s de trocar um par de pixels por vez Certifique se de que a opera o funciona para imagens tanto com n mero par como com n mero mpar de linhas e colunas b 20 pontos Converta uma imagem colorida para tons de cinza l
4. gt win_id SOURCE glutCreateWindow Original Image glutDisplayFunc lt name of your function for displaying in the SOURCE window gt glutReshapeFunc sourceReshape glPixelStorei GL UNPACK ALIGNMENT 1 glClearColor 0 0 0 0 0 0 0 V A Now initialize target window V A glutinitDisplayMode GLUT DOUBLE GLUT RGB glutInitWindowPosition lt source image width gt 50 0 glutInitWindowSize lt source image width gt lt source image height gt win_id TARGET glutCreateWindow New Image glutDisplayFunc lt name of your function for displaying in the TARGET window gt glutReshapeFunc targetReshape glPixelStorei GL UNPACK ALIGNMENT 1 glClearColor 0 0 0 0 0 0 0 V A call your function for initializing your user interface V A lt your function for initializing your user interface for example your function to initialize GLUI gt V A call glutMainLoop V A glutMainLoop return 0 3 Demais fun es que voc precisar para implementar o trabalho RE RTI RETIRE T ITT ESTATE TIT R kek kkk II Display image II O do ET EER TELE RENTER EMER hind void Image Display void glClear GL_COLOR_BUFFER_BIT glRasterPos2i 0 0 glDrawPixels lt image width gt lt image height gt GL RGB GL UNSIGNED BYTE lt pointer to the 1 D array of pixels of the image gt glutSwapBuffers fpetetetetetetetedetete ekekeke dede dede dede dd ee dd ee tdi I Display function
5. iblioteca disponibilizada para a API jpeg api Examples of how to use the read and write functions in your program II include jpeg_api h II int main int argc char argv int w image widht of columns in pixels h image height of rows in pixels c of color channels e g 1 if grayscale image 3 if RGB image 4 if RGBA image II unsigned char pixels pointer to a linear array that will IL Il contain the pixel information for the image II lf image RGB gt pixels RGBRGB RGB II lf image RGBA gt pixels RGBARGBA RGBA II lf image grayscale gt pixels LL L luminance II if IReadJPEG argv 1 amp pixels amp w amp h amp c argv 1 contains the input file name pixels returns the pixel data II manipulate the image data w h c retun width height and II of channels respectivelly IL II Now suppose you would like to write back Il II the image using a different file name II say output name jpg II WriteJPEG output_name jpg pixels w h c II else lt your error message Not a valid JPEG file goes here gt 2 Como Utilizar Multiplas Janelas com GLUT Voc pode criar tantas janelas quantas quiser utilizando o comando glutCreate Window Esta fun o retorna um identificador nico um n mero inteiro para cada janela criada No caso de v rias janelas terem sido criadas voc dever indicar explicitamente a janela que ser
6. puteLuminance amp Target for i 0 i lt 2 i glutSetWindow win_id i seleciona a janela glutPostRedisplay II for a a atualiza o do conte do da janela break 5 Dica Final N o esque a de chamar o comando glutSwapBuffers ap s ter executado o commando g DrawPixels conforme mostrado no procedimento Display Boa Sorte
7. to indique o que voc faria diferente de modo a minimizar ou evitar as dificuldades experimentadas IMPORTANTE O seu relat rio ilustrado ie contendo imagens mostrando os resultados obtidos dever ser disponibilizado at a data hora de entrega do trabalho por meio de uma web page a ser criada por cada estudante para a disciplina Para uniformizar os endere os das p ginas utilize o seguinte URL http www w inf ufrgs br lt seu nome de usu rio gt inf01046 3 Para o seu programa desej vel construir uma interface intuitiva utilizando o seu toolkit preferido e g FLTK GLUI etc mas certifique se de que a sua interface intuitiva Neste caso coloque uma imagem da interface no seu relat rio na web GLUI uma interface gr fica extremamente f cil de utilizar e que se encontra dispon vel para download na p gina de Paul Rademacher http Awww cs unc edu rademach Fontes exemplos e manual de utiliza o est o dispon veis on line DISCAS PARA COMPLETAR O TRABALHO Importante Antes de come ar a implementa o leia atentamente estas dicas e consulte algum livro sobre OpenGL ou pesquise na web sempre que voc encontrar algum comando de OpenGL GLUT ou GLU que n o lhe seja familiar Em particular recomendo o uso do OpenGL Red Book OpenGL Programming Guide que se encontra dispon vel na Biblioteca 1 Leitura do arquivo de entrada imagem O fragmento de c digo a seguir ilustra como utilizar a b
8. umin ncia Uma imagem em tons de cinza pode ser obtida a partir de uma imagem colorida aplicando se a seguinte f rmula para cada um dos pixels da imagem original L 0 299 R 0 587 G 0 114 B onde R G e B s o as componentes de cor do pixel original Ao criar uma imagem a ser exibida em tons de cinza para cada pixel p fa a Ri Gi Bi Li O seu programa deve permitir que a aplica o do c lculo de lumin ncia um n mero arbitr rio de vezes durante sua execu o Pergunta o que acontecer com uma imagem em tons de cinza Ri Gi Bi Li caso o c lculo de lumin ncia seja aplicado repetidas vezes e g recursivamente a imagem c 25 pontos Implemente um processo de quantiza o de tons sobre as imagens em tons de cinza Note que neste caso como a dimens o do espa o de cor 1 tal processo de quantiza o se torna bastante simples Assim o seu programa deve receber como entrada o n mero de tons a serem utilizados no processo de quantiza o d 10 points Salve a imagem resultante das opera es realizadas em um arquivo JPEG Disponibilize uma op o para salvar a nova imagem como um arquivo JPEG 2 Prepare um relat rio descrevendo de forma ilustrada a sua implementa o No relat rio para cada etapa do trabalho indique se voc a completou satisfatoriamente Em caso de n o t la completado explique porque n o conseguiu faz lo Al m disso liste as dificuldades que voc enfrentou e em retrospec
9. utilizada utilizando o comando glutSetWindow uma boa pr tica salvar os identificadores retornados pelo comando glutCreate Window em um array e utilizar constants defines ao se referir a cada janela de modo a melhorar a legibilidade do c digo Por exemplo veja o fragmento de c digo a seguir que ilustra o uso deste procedimento include lt GL glut h gt define SOURCE 0 define TARGET 1 int win_id 2 e o utilize com o seguinte modelo de fun o main observe que eu estou usando nota o de C KAKA k KK KERR AKAIKE keke ke k kk k k k k k k he he he ke k k kk k k keke he he ke kk kkk kk k kk kk k kk kkk k k hehe ke kk kkk main function for controlling the implementation of your assignment Pe de de de e De e e e DD e e e e e E e e KEK ERE e E e e e e e e e E e e int main int argc char argv V A read the image file V A lt your command to read the source image goes here gt V A Initialize two windows Make sure you understand the meaning of the parameters used with each command In particular make sure you understand the meaning of the parameters used with glutInitDisplayMode and understand its relationship to the glutSwapBuffers command You can find detailed explanations about them in the OpenGL red book First initialize source window V A glutinitDisplayMode GLUT DOUBLE GLUT RGB glutInitWindowPosition 0 0 glutInitWindowSize lt source image width gt lt source image height
Download Pdf Manuals
Related Search
Related Contents
Electrolux FRIGIDAIRE CPLEF398A User's Manual 3Com 09-1457-000 Network Card User Manual Issue 12 (April 2009) TRBOnet Watch User Guide La réflexologie, mode d`emploi 823 0064 000 UM NILFISK Extreme EU 1.indb 1 - Elhvb.com Catálogo aerografía Copyright © All rights reserved.
Failed to retrieve file