Computação Gráfica Primeiro Semestre de 2015 Lista de Exercı́cios 1 Nome: Prof. Dr. Sylvio Barbon Jr 13/07/2015 Estrutura Básica - ImageJ * ImageJApplet: Permite que a aplicação seja rodada encapsulada em uma Applet Java. ImageJ: É a classe principal de uma aplicação (ou plugin) para o ImageJ. Executer: A classe que executa as classes em threads separadas; IJ: Uma classe com diversos métodos úteis. ImagePlus: A classe que representa uma imagem no ImageJ, baseada no ImageProcessor. ImageStack: É um array de imagens, útil para se trabalhar com várias matrizes da mesma imagem. ImageConverter: É uma classe com diversos métodos para conversão de um ImagePlus em outro. ImageProcessor: Uma classe abstrata de implementações de processadores de imagem (ImageProcessors). StackConverter: Uma classe para conversão de matrizes de uma imagem para outra. StackProcessor: Uma classe para processar uma ”pilha” de imagens. Exemplo de código: import import import import ij ij ij ij . ImagePlus ; . i o . Opener ; . process . ByteProcessor ; . process . ImageProcessor ; import j a v a . awt . C o l o r ; public c l a s s Exemplo1 { public s t a t i c void main ( S t r i n g a r g s [ ] ) { new Exemplo1 ( ) . run ( ” Ola ” ) ; } public void run ( S t r i n g a r g ) { i n t width = 3 0 0 ; int height = 300; I m a g e P r o c e s s o r i p = new B y t e P r o c e s s o r ( width , h e i g h t ) ; ip . setColor ( Color . black ) ; ip . f i l l ( ) ; f o r ( i n t x = 0 ; x < width ; x++) { f o r ( i n t y = 0 ; y < h e i g h t ; y++) { i f ( x == y | | ( width − x ) == y ) ip . putPixel (x , y , 255); } } ImagePlus imp = new ImagePlus ( ”Imagem R e s u l t a n t e ” , i p ) ; imp . show ( ) ; } } Computação Gráfica Lista de Exercı́cios 1 - Páginas 2 de 3 13/07/2015 1) Implemente um método para criar uma imagem de um tabuleiro de Xadrez, usando 64x64 pixels. 2) Implemente um método para criar uma imagem (16x16) em tons de cinza (GRAY8), onde sejam exibidos todos os tons de cinza. 3) Implemente um método para criar uma imagem colorida (COLOR RGB) de um tabuleiro de Xadrez 256x256, sendo as cores amarelo e vermelho. 4) Implemente um método para criar uma imagem 100px x 66px, colorida usando 8 bits (COLOR RGB). Nesta imagem você deve desenhar a bandeira do Japão. 5) Implemente um método para abrir a imagem criada no Exercı́cio 3 e substituir a cor amarelo por azul. 6) Implemente um método para calcular o histograma de uma imagem em tons de cinza passada como parâmetro. O histograma deve ser salvo como uma nova imagem, semelhante a um gráfico de barras. 7) Implemente um método para binarizar de uma imagem em tons de cinza dado um limiar e depois salve-a no disco. 8) Implemente um método para binarizar de uma imagem em tons de cinza pela média das tonalidades e depois salve-a no disco. 9) Implemente um método para binarizar de uma imagem em tons de cinza pela mediana das tonalidades e depois salve-a no disco. 10) Implemente um método para segmentação adaptativa de uma imagem em tons de cinza dado um tamanho de Janela como parâmetro. Faça a segmentação pela média das tonalidades e salve em disco. 11) Implemente um método para segmentação adaptativa de uma imagem em tons de cinza dado um tamanho de Janela como parâmetro. Faça a segmentação pela mediana das tonalidades e salve em disco. 12) Implemente uma método para normalizar o histograma de uma imagem em tons de cinza e salvá-la em disco. 13) Implemente um método para equalizar o histograma de uma imagem em tons de cinza e salvá-la em disco. 14) Implemente um método para calcular o histograma de uma imagem colorida (COLOR RGB) passada como parâmetro. O histograma deve ser salvo como uma nova imagem, contemp- Computação Gráfica Lista de Exercı́cios 1 - Páginas 3 de 3 13/07/2015 lando os canais RGB. 15) Implemente um método para substituir os canais RGB de cor de uma imagem colorida (COLOR RGB) passada como parâmetro. Os canas devem seguir uma ordem de energia, onde o canal de maior energia é o primeiro e o de menor é o último.