Workshop Processing: Visualização de Dados e Interatividade



Documentos relacionados
Processing - Imagem 1. Processing. Imagem (PImage) Jorge Cardoso

Atividade: matrizes e imagens digitais

Desenho e Apresentação de Imagens por Computador

CorelDRAW UM PROGRAMA DE DESIGN

Implementando plugins para o ImageJ

Thales Trigo. Formatos de arquivos digitais

APLICATIVOS GRÁFICOS (AULA 4)

Simulação Gráfica. Morfologia Matemática. Julio C. S. Jacques Junior

OpenCV.

Imagens Digitais Tratamento de Imagens

Imagem digital. Unidade 3

Introdução ao processamento de imagens e OCTAVE. Julio C. S. Jacques Junior juliojj@gmail.com

Roteiro 2: Conceitos de Tags HTML

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

FILTRAGEM NO DOMÍNIO DAS FREQUÊNCIAS (TRANSFORMADA DE FOURIER) Daniel C. Zanotta 04/06/2015

IntMu.Lab3. Nome: Nº Data: Importe as imagens disponibilizadas em

Dispositivos de Entrada e Saída

Informática Básica para o PIBID

UM POUCO DE COMPUTAÇÃO GRÁFICA.

Diagrama de fluxo de dados na Plataforma Vicon SAGA. Terminologias de bancos de dados: Banco de Dados, Tabela, Campos, Registros

Formatos de Imagem PNG. Universidade Federal de Minas Gerais. Bruno Xavier da Silva. Guilherme de Castro Leite. Leonel Fonseca Ivo

Manual Processamento de Imagem. João L. Vilaça

Imagem e Gráficos. vetorial ou raster?

Trabalho 2 Fundamentos de computação Gráfica

FCT Faculdade de Ciências e Tecnologia Serviço Técnico de Informática STI SGCD Sistema Gerenciador de Conteúdos Dinâmicos

Informática Aplicada a Radiologia

Processamento de Imagem. Representação, Armazenamento e Formato de imagens Professora Sheila Cáceres

%0/"1&2$&$3*$34+/!+&.05#!.62!+& #*+!&,&'-&"$.$"#/$&

Utilização do Webmail da UFS

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

WEB DESIGN ELEMENTOS GRÁFICOS

Tamanho e resolução da imagem

Chapter 2 Guia de referência rápida 2-

Fotografia Digital Obtenção da Imagem e Impressão

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

azevedolab.net 2015 Dr. Walter F. de Azevedo Jr.

MULTIMÍDIA - GIMP TRABALHANDO COM TEXTOS

15. OLHA QUEM ESTÁ NA WEB!

COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS

LÓGICA DE PROGRAMAÇÃO

QUEM FEZ O TRABALHO?

Figura 1: Formato matricial de uma imagem retangular. Figura 2: Ampliação dos pixels de uma imagem

Redução de imagem no domínio espacial

Webdesign HTML. Introdução a HTML e as principais tags da linguagem. Thiago Miranda dos Santos Souza

ferramentas da imagem digital

Introdução à Engenharia ENG1000

Operações Geométricas com Imagens

OURO MODERNO Designer Gráfico APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Introdução ao HTML Hypertext Markup Language

AULA 5 Manipulando Dados Matriciais: Grades e Imagens. 5.1 Importando Grades e Imagens Interface Simplificada

TV Digital com Ginga. NCLua Módulo Canvas

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Redimensionamento de Imagens no Catálogo de Produtos

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens

Usando o NVU Parte 2: Inserindo imagens

Como funciona? SUMÁRIO

Como Começar? Criação Páginas. Etapas. Apresentação INTERNET

Processamento de Imagens Digitais

Pesquisa e organização de informação

GUIA PRÁTICO PARA EDIÇÃO DE FOTOS E IMAGENS

O Software Face Match

Pág 31. UC Introdução a Informática Docente: André Luiz Silva de Moraes 1º sem Redes de Computadores. 5 Introdução ao uso do BrOffice Impress

APLICATIVOS GRÁFICOS (AULA 3)

Conceitos do Photoshop. Bitmap image Formatos de arquivos Memória Escalas de cores

ftp://ftp.cr-df.rnp.br/pub/netinfo/training/rnp/kit-bsb/html/guia.zip novembro 1996 Tutorial - Autoria em World Wide Web

Gerenciamento Eletrônico de Documentos AMBIENTE GED. Preparação de documentos

MICROSOFT POWER POINT

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS

Como gerar arquivos.plt

Representação Binária de Dados

Microsoft Access XP Módulo Um

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

Textos com o Photoshop

Manual do Painel Administrativo

Imagem digital 2. Resolução x dimensão da imagem

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

Power Point. Autor: Paula Pedone

CRIAÇÃO DE SITES (AULA 4)

Introdução ao HTML. Sumário

Manual PAINT.NET de imagens

Seleção Retangular Esta é uma das ferramentas mais usadas. A seleção será indicada pelas linhas tracejadas que fazem a figura de um retângulo.

Digitalização para PC

Processamento digital de imagens. introdução

VIDJAYA INFORMÁTICA LTDA.

Procedimento de anexação de peças e envio

SCPI 8.0. Guia Rápido. Parametrizando o Módulo CONTAS. Introdução. Informações da Entidade. Nesta Edição

Apresentando o Sistema GeoOffice GPS Profissional

Técnicas de Cartografia Digital

Ferramentas Web, Web 2.0 e Software Livre em EVT

Fotografia digital. Aspectos técnicos

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

PDI 1 - Projeto e Design de Interfaces Web

Material protegido pelas leis de direito autoral Proibida qualquer tipo de divulgação sem à devida autorização ou citada a fonte de forma correta.

Produção Gráfica. Fechamento de arquivos para impressão

ESTRUTURAS DE DADOS II

Nenhum dado é perdido durante o processo de compressão. Preserva todas as informações que permitirão a reconstrução exata da imagem. Reversível.

Características do vídeo. Aquisição, síntese, edição e reprodução de vídeo. Características do vídeo analógico. Características do vídeo analógico

Transcrição:

Workshop Processing: Visualização de Dados e Interatividade Imagens Claudio Esperança Programa de Engenharia de Sistemas e Computação COPPE / UFRJ Escola de Belas Artes Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 1 / 28

Sumário 1 Imagens Desenhando imagens Endereçamento de pixels Processamento de imagens Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 2 / 28

Sumário 1 Imagens Desenhando imagens Endereçamento de pixels Processamento de imagens Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 3 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Imagens Digitais Imagens digitais são matrizes retangulares de pixels A profundidade de uma imagem está relacionada com a resolução no espaço de cores, isto é, quantos valores distintos cada pixel pode assumir: 1 bit Imagem binária (preto e branco) 8 bits 2 8 = 256 cores n bits 2 n cores Frequentemente o espaço de cores é organizado por componentes, por exemplo: 8 bits 256 tons de cinza 8 bits 256 cores quaisquer usando uma tabela de cores 24 bits 8 bits para cada componente R/G/B 32 bits 8 bits para cada componente R/G/B/Alfa Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 4 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Arquivos de imagens Possuem um cabeçalho com as propriedades da imagem Tamanho em pixels (largura/altura) Tamanho para impressão (em unidades de comprimento) Profundidade (resolução do espaço de cores) Palavras-chave para catalogação Costumam utilizar compressão para reduzir o espaço para armazenamento Compressão sem perda: cada pixel original pode ser reproduzido exatamente (ex.: formato GIF para imagens de 1 a 8 bits) Compressão com perda: cada pixel é reproduzido aproximadamente Permite maiores taxas de compressão Ex.: formato JPG para imagens de 8/24 bits Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 5 / 28

Exibindo imagens com Processing Processing pode ler imagens digitais em vários formatos Para usar uma imagem: 1 Coloque o arquivo no subdiretório data da aplicação Use o comando Sketch > Add File a partir do menu principal do PDE 2 Declare um objeto do tipo PImage 3 Carregue o objeto com a imagem do arquivo usando a função loadimage(arquivo) Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 6 / 28

Exibindo imagens com Processing Processing pode ler imagens digitais em vários formatos Para usar uma imagem: 1 Coloque o arquivo no subdiretório data da aplicação Use o comando Sketch > Add File a partir do menu principal do PDE 2 Declare um objeto do tipo PImage 3 Carregue o objeto com a imagem do arquivo usando a função loadimage(arquivo) Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 6 / 28

Exibindo imagens com Processing Processing pode ler imagens digitais em vários formatos Para usar uma imagem: 1 Coloque o arquivo no subdiretório data da aplicação Use o comando Sketch > Add File a partir do menu principal do PDE 2 Declare um objeto do tipo PImage 3 Carregue o objeto com a imagem do arquivo usando a função loadimage(arquivo) Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 6 / 28

Exibindo imagens com Processing Processing pode ler imagens digitais em vários formatos Para usar uma imagem: 1 Coloque o arquivo no subdiretório data da aplicação Use o comando Sketch > Add File a partir do menu principal do PDE 2 Declare um objeto do tipo PImage 3 Carregue o objeto com a imagem do arquivo usando a função loadimage(arquivo) Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 6 / 28

Exibindo imagens com Processing Processing pode ler imagens digitais em vários formatos Para usar uma imagem: 1 Coloque o arquivo no subdiretório data da aplicação Use o comando Sketch > Add File a partir do menu principal do PDE 2 Declare um objeto do tipo PImage 3 Carregue o objeto com a imagem do arquivo usando a função loadimage(arquivo) Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 6 / 28

Exibindo imagens com Processing Processing pode ler imagens digitais em vários formatos Para usar uma imagem: 1 Coloque o arquivo no subdiretório data da aplicação Use o comando Sketch > Add File a partir do menu principal do PDE 2 Declare um objeto do tipo PImage 3 Carregue o objeto com a imagem do arquivo usando a função loadimage(arquivo) Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 6 / 28

Exibindo imagens com Processing (cont.) Para desenhar uma imagem carregada no objeto PImage img use image(img,x,y) desenha img com o canto superior esquerdo em [x, y] image(img,x,y,w,h) desenha img com o canto superior esquerdo em [x, y] escalada para ocupar largura w e altura h A função imagemode() pode ser usada para alterar o significado dos argumentos da função image() Por exemplo, imagemode(center) faz com que os argumentos x e y refiram-se ao centro da imagem Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 7 / 28

Exibindo imagens com Processing (cont.) Para desenhar uma imagem carregada no objeto PImage img use image(img,x,y) desenha img com o canto superior esquerdo em [x, y] image(img,x,y,w,h) desenha img com o canto superior esquerdo em [x, y] escalada para ocupar largura w e altura h A função imagemode() pode ser usada para alterar o significado dos argumentos da função image() Por exemplo, imagemode(center) faz com que os argumentos x e y refiram-se ao centro da imagem Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 7 / 28

Exibindo imagens com Processing (cont.) Para desenhar uma imagem carregada no objeto PImage img use image(img,x,y) desenha img com o canto superior esquerdo em [x, y] image(img,x,y,w,h) desenha img com o canto superior esquerdo em [x, y] escalada para ocupar largura w e altura h A função imagemode() pode ser usada para alterar o significado dos argumentos da função image() Por exemplo, imagemode(center) faz com que os argumentos x e y refiram-se ao centro da imagem Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 7 / 28

Exibindo imagens com Processing (cont.) Para desenhar uma imagem carregada no objeto PImage img use image(img,x,y) desenha img com o canto superior esquerdo em [x, y] image(img,x,y,w,h) desenha img com o canto superior esquerdo em [x, y] escalada para ocupar largura w e altura h A função imagemode() pode ser usada para alterar o significado dos argumentos da função image() Por exemplo, imagemode(center) faz com que os argumentos x e y refiram-se ao centro da imagem Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 7 / 28

Exibindo imagens com Processing (cont.) Para desenhar uma imagem carregada no objeto PImage img use image(img,x,y) desenha img com o canto superior esquerdo em [x, y] image(img,x,y,w,h) desenha img com o canto superior esquerdo em [x, y] escalada para ocupar largura w e altura h A função imagemode() pode ser usada para alterar o significado dos argumentos da função image() Por exemplo, imagemode(center) faz com que os argumentos x e y refiram-se ao centro da imagem Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 7 / 28

Exibindo imagens - exemplo size(300,300); PImage img = loadimage("arvore.jpg"); image(img,0,0); nostroke(); rectmode(center); imagemode(center); rect(150,150,110,110); image(img,150,150,100,100); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 8 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens Usando a função tint() é possível alterar a cor global (tom) da imagem tint() pode receber argumentos de forma análoga a funções como fill() ou stroke(): tint(cinza) tint(cinza, alfa) tint(c 1, c 2, c 3 ) tint(c 1, c 2, c 3, alfa) tint(cor) Para cancelar o efeito do tint() use notint() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 9 / 28

Alterando o tom de imagens - exemplo size(300,300); PImage img = loadimage("arvore.jpg"); colormode(hsb,9,100,100); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { tint (i*3+j, 100, 100); image(img, i*100, j*100, 100, 100); } } Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 10 / 28

Sumário 1 Imagens Desenhando imagens Endereçamento de pixels Processamento de imagens Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 11 / 28

Acessando pixels da tela É possível manipular a tela pixel a pixel A função get (x,y) retorna um objeto do tipo color na posição [x,y] da tela A função set (x,y,cor) substitui o pixel na posição [x,y] da tela por cor Essas funções são bastante eficientes Não são afetadas por transformações afim x e y são sempre coordenadas de tela em pixels Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 12 / 28

Acessando pixels da tela É possível manipular a tela pixel a pixel A função get (x,y) retorna um objeto do tipo color na posição [x,y] da tela A função set (x,y,cor) substitui o pixel na posição [x,y] da tela por cor Essas funções são bastante eficientes Não são afetadas por transformações afim x e y são sempre coordenadas de tela em pixels Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 12 / 28

Acessando pixels da tela É possível manipular a tela pixel a pixel A função get (x,y) retorna um objeto do tipo color na posição [x,y] da tela A função set (x,y,cor) substitui o pixel na posição [x,y] da tela por cor Essas funções são bastante eficientes Não são afetadas por transformações afim x e y são sempre coordenadas de tela em pixels Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 12 / 28

Acessando pixels da tela É possível manipular a tela pixel a pixel A função get (x,y) retorna um objeto do tipo color na posição [x,y] da tela A função set (x,y,cor) substitui o pixel na posição [x,y] da tela por cor Essas funções são bastante eficientes Não são afetadas por transformações afim x e y são sempre coordenadas de tela em pixels Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 12 / 28

Acessando pixels da tela É possível manipular a tela pixel a pixel A função get (x,y) retorna um objeto do tipo color na posição [x,y] da tela A função set (x,y,cor) substitui o pixel na posição [x,y] da tela por cor Essas funções são bastante eficientes Não são afetadas por transformações afim x e y são sempre coordenadas de tela em pixels Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 12 / 28

Acessando pixels da tela É possível manipular a tela pixel a pixel A função get (x,y) retorna um objeto do tipo color na posição [x,y] da tela A função set (x,y,cor) substitui o pixel na posição [x,y] da tela por cor Essas funções são bastante eficientes Não são afetadas por transformações afim x e y são sempre coordenadas de tela em pixels Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 12 / 28

Acessando pixels da tela - exemplo size(300,300); PImage img = loadimage("arvore.jpg"); image (img, 0,0,150,150); for (int x = 0; x < 150; x++) { for (int y = 0; y < 150; y++) { color p = get(x,y); set (300-x,y,p); set (300-x,300-y, p); set (x,300-y,p); } } Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 13 / 28

Analisando cores Um objeto color pode ser decomposto em componentes usando as funções red(), green(), blue(), alpha(), hue(), saturation() e brightness() Por exemplo, red(color(100,120,90)) retorna 100 Um objeto color é essencialmente uma palavra de 32 bits sendo que cada 8 bits contém a componente A(alpha),R(red),G(green) e B(blue), respectivamente Uma maneira mais rápida de obter suas componentes é através de bit shifting Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 14 / 28

Analisando cores Um objeto color pode ser decomposto em componentes usando as funções red(), green(), blue(), alpha(), hue(), saturation() e brightness() Por exemplo, red(color(100,120,90)) retorna 100 Um objeto color é essencialmente uma palavra de 32 bits sendo que cada 8 bits contém a componente A(alpha),R(red),G(green) e B(blue), respectivamente Uma maneira mais rápida de obter suas componentes é através de bit shifting Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 14 / 28

Analisando cores Um objeto color pode ser decomposto em componentes usando as funções red(), green(), blue(), alpha(), hue(), saturation() e brightness() Por exemplo, red(color(100,120,90)) retorna 100 Um objeto color é essencialmente uma palavra de 32 bits sendo que cada 8 bits contém a componente A(alpha),R(red),G(green) e B(blue), respectivamente Uma maneira mais rápida de obter suas componentes é através de bit shifting Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 14 / 28

Analisando cores Um objeto color pode ser decomposto em componentes usando as funções red(), green(), blue(), alpha(), hue(), saturation() e brightness() Por exemplo, red(color(100,120,90)) retorna 100 Um objeto color é essencialmente uma palavra de 32 bits sendo que cada 8 bits contém a componente A(alpha),R(red),G(green) e B(blue), respectivamente Uma maneira mais rápida de obter suas componentes é através de bit shifting Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 14 / 28

Analisando cores - exemplo size(300,300); PImage img = loadimage("arvore.jpg"); image (img, 0,0,150,150); for (int x = 0; x < 150; x++) { for (int y = 0; y < 150; y++) { color c = get(x,y); int b = c & 0xff; int g = (c >> 8) & 0xff; int r = (c >> 16) & 0xff; set (x+150,y,color(r,0,0)); set (x+150,y+150, color(0,g,0)); set (x,y+150, color(0,0,b)); } } Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 15 / 28

Acessando blocos de pixels get() e set() também podem ser usados para ler e escrever blocos retangulares de pixels: get() retorna uma PImage correspondente a toda a tela get(x,y,width,height) retorna uma PImage com os pixels da tela correspondente a um retângulo set(x,y,img) desenha a PImage img na posição x, y da tela Obs.: set() é mais rápido mas menos flexível que image() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 16 / 28

Acessando blocos de pixels get() e set() também podem ser usados para ler e escrever blocos retangulares de pixels: get() retorna uma PImage correspondente a toda a tela get(x,y,width,height) retorna uma PImage com os pixels da tela correspondente a um retângulo set(x,y,img) desenha a PImage img na posição x, y da tela Obs.: set() é mais rápido mas menos flexível que image() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 16 / 28

Acessando blocos de pixels get() e set() também podem ser usados para ler e escrever blocos retangulares de pixels: get() retorna uma PImage correspondente a toda a tela get(x,y,width,height) retorna uma PImage com os pixels da tela correspondente a um retângulo set(x,y,img) desenha a PImage img na posição x, y da tela Obs.: set() é mais rápido mas menos flexível que image() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 16 / 28

Acessando blocos de pixels get() e set() também podem ser usados para ler e escrever blocos retangulares de pixels: get() retorna uma PImage correspondente a toda a tela get(x,y,width,height) retorna uma PImage com os pixels da tela correspondente a um retângulo set(x,y,img) desenha a PImage img na posição x, y da tela Obs.: set() é mais rápido mas menos flexível que image() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 16 / 28

Acessando blocos de pixels get() e set() também podem ser usados para ler e escrever blocos retangulares de pixels: get() retorna uma PImage correspondente a toda a tela get(x,y,width,height) retorna uma PImage com os pixels da tela correspondente a um retângulo set(x,y,img) desenha a PImage img na posição x, y da tela Obs.: set() é mais rápido mas menos flexível que image() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 16 / 28

Acessando blocos de pixels - exemplo size(300,300); smooth(); strokeweight (40); line(0, 0, width, height); line(0, height, width, 0); nostroke(); ellipse(width/4, height/2, 80, 80); for (int x = 0; x < width; x+=20) { PImage fatia = get(x,0,10, height); set (x+10,0, fatia); } Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 17 / 28

Acessando pixels numa imagem Todo objeto PImage dispõe dos campos: width largura em pixels height altura em pixels pixels[] array com width height pixels É possível acessar diretamente os pixels de uma imagem através do array pixels, mas é necessário 1 chamar o método loadpixels() antes de ler os valores do array 2 chamar o método updatepixels() após escrever os valores no array Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 18 / 28

Acessando pixels numa imagem Todo objeto PImage dispõe dos campos: width largura em pixels height altura em pixels pixels[] array com width height pixels É possível acessar diretamente os pixels de uma imagem através do array pixels, mas é necessário 1 chamar o método loadpixels() antes de ler os valores do array 2 chamar o método updatepixels() após escrever os valores no array Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 18 / 28

Acessando pixels numa imagem Todo objeto PImage dispõe dos campos: width largura em pixels height altura em pixels pixels[] array com width height pixels É possível acessar diretamente os pixels de uma imagem através do array pixels, mas é necessário 1 chamar o método loadpixels() antes de ler os valores do array 2 chamar o método updatepixels() após escrever os valores no array Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 18 / 28

Acessando pixels numa imagem Todo objeto PImage dispõe dos campos: width largura em pixels height altura em pixels pixels[] array com width height pixels É possível acessar diretamente os pixels de uma imagem através do array pixels, mas é necessário 1 chamar o método loadpixels() antes de ler os valores do array 2 chamar o método updatepixels() após escrever os valores no array Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 18 / 28

Acessando pixels numa imagem Todo objeto PImage dispõe dos campos: width largura em pixels height altura em pixels pixels[] array com width height pixels É possível acessar diretamente os pixels de uma imagem através do array pixels, mas é necessário 1 chamar o método loadpixels() antes de ler os valores do array 2 chamar o método updatepixels() após escrever os valores no array Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 18 / 28

Acessando pixels numa imagem Todo objeto PImage dispõe dos campos: width largura em pixels height altura em pixels pixels[] array com width height pixels É possível acessar diretamente os pixels de uma imagem através do array pixels, mas é necessário 1 chamar o método loadpixels() antes de ler os valores do array 2 chamar o método updatepixels() após escrever os valores no array Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 18 / 28

Acessando pixels numa imagem Todo objeto PImage dispõe dos campos: width largura em pixels height altura em pixels pixels[] array com width height pixels É possível acessar diretamente os pixels de uma imagem através do array pixels, mas é necessário 1 chamar o método loadpixels() antes de ler os valores do array 2 chamar o método updatepixels() após escrever os valores no array Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 18 / 28

Acessando pixels numa imagem - exemplo size(300,300); PImage img = loadimage("arvore.jpg"); int tam = (img.width*img.height); img. loadpixels(); for (int i=0; i < tam; i+=4) { img.pixels[i] = img.pixels[i+1] = 0; } img. updatepixels (); image(img, 0, 0); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 19 / 28

Sumário 1 Imagens Desenhando imagens Endereçamento de pixels Processamento de imagens Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 20 / 28

Processamento de imagens Imagens digitais podem ser submetidas a algoritmos cujas finalidades incluem: Enfatizar ou atenuar bordas Alterar sua distribuição de cores Misturar elementos de outras imagens Simular meios convencionais como pintura aquarela ou a óleo O termo processamento de imagens refere-se ao estudo desses algoritmos Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 21 / 28

Processamento de imagens Imagens digitais podem ser submetidas a algoritmos cujas finalidades incluem: Enfatizar ou atenuar bordas Alterar sua distribuição de cores Misturar elementos de outras imagens Simular meios convencionais como pintura aquarela ou a óleo O termo processamento de imagens refere-se ao estudo desses algoritmos Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 21 / 28

Processamento de imagens Imagens digitais podem ser submetidas a algoritmos cujas finalidades incluem: Enfatizar ou atenuar bordas Alterar sua distribuição de cores Misturar elementos de outras imagens Simular meios convencionais como pintura aquarela ou a óleo O termo processamento de imagens refere-se ao estudo desses algoritmos Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 21 / 28

Processamento de imagens Imagens digitais podem ser submetidas a algoritmos cujas finalidades incluem: Enfatizar ou atenuar bordas Alterar sua distribuição de cores Misturar elementos de outras imagens Simular meios convencionais como pintura aquarela ou a óleo O termo processamento de imagens refere-se ao estudo desses algoritmos Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 21 / 28

Processamento de imagens Imagens digitais podem ser submetidas a algoritmos cujas finalidades incluem: Enfatizar ou atenuar bordas Alterar sua distribuição de cores Misturar elementos de outras imagens Simular meios convencionais como pintura aquarela ou a óleo O termo processamento de imagens refere-se ao estudo desses algoritmos Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 21 / 28

Processamento de imagens Imagens digitais podem ser submetidas a algoritmos cujas finalidades incluem: Enfatizar ou atenuar bordas Alterar sua distribuição de cores Misturar elementos de outras imagens Simular meios convencionais como pintura aquarela ou a óleo O termo processamento de imagens refere-se ao estudo desses algoritmos Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 21 / 28

Filtragem O processo conhecido como filtragem é oriundo da disciplina de processamento de sinais e tem grande aplicação em imagens Um filtro consiste de um algoritmo que gera uma nova imagem aplicando uma função a cada pixel e sua vizinhança de uma imagem de origem Por exemplo, o filtro conhecido como "limiar"(threshold) analisa cada pixel de uma imagem e o substitui por um pixel preto ou branco conforme seja menor ou maior que um valor de intensidade (limiar) dado Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 22 / 28

Filtragem O processo conhecido como filtragem é oriundo da disciplina de processamento de sinais e tem grande aplicação em imagens Um filtro consiste de um algoritmo que gera uma nova imagem aplicando uma função a cada pixel e sua vizinhança de uma imagem de origem Por exemplo, o filtro conhecido como "limiar"(threshold) analisa cada pixel de uma imagem e o substitui por um pixel preto ou branco conforme seja menor ou maior que um valor de intensidade (limiar) dado Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 22 / 28

Filtragem O processo conhecido como filtragem é oriundo da disciplina de processamento de sinais e tem grande aplicação em imagens Um filtro consiste de um algoritmo que gera uma nova imagem aplicando uma função a cada pixel e sua vizinhança de uma imagem de origem Por exemplo, o filtro conhecido como "limiar"(threshold) analisa cada pixel de uma imagem e o substitui por um pixel preto ou branco conforme seja menor ou maior que um valor de intensidade (limiar) dado Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 22 / 28

Filtro de limiar - exemplo size(300,300); int limiar = 128; PImage img = loadimage("arvore.jpg"); int tam = (img.width*img.height); img. loadpixels(); for (int i=0; i < tam; i++) { if ( brightness(img.pixels[i])<limiar) { img.pixels[i] = color(0); } else { img.pixels[i] = color (255); } } img. updatepixels (); image(img, 0, 0); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 23 / 28

A função filter() Vários filtros comuns podem ser aplicados diretamente sobre a tela usando a função filter() que tem duas assinaturas filter(modo) filter(modo,valor) onde modo pode ser THRESHOLD, GRAY, INVERT, POSTERIZE, BLUR, OPAQUE, ERODE, ou DILATE O parâmetro modo indica o algoritmo a ser aplicado O parâmetro valor é necessário apenas para alguns modos Para filtrar uma imagem ao invés da tela, pode-se usar o método filter() da classe PImage que tem os mesmos argumentos que a função filter() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 24 / 28

A função filter() Vários filtros comuns podem ser aplicados diretamente sobre a tela usando a função filter() que tem duas assinaturas filter(modo) filter(modo,valor) onde modo pode ser THRESHOLD, GRAY, INVERT, POSTERIZE, BLUR, OPAQUE, ERODE, ou DILATE O parâmetro modo indica o algoritmo a ser aplicado O parâmetro valor é necessário apenas para alguns modos Para filtrar uma imagem ao invés da tela, pode-se usar o método filter() da classe PImage que tem os mesmos argumentos que a função filter() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 24 / 28

A função filter() Vários filtros comuns podem ser aplicados diretamente sobre a tela usando a função filter() que tem duas assinaturas filter(modo) filter(modo,valor) onde modo pode ser THRESHOLD, GRAY, INVERT, POSTERIZE, BLUR, OPAQUE, ERODE, ou DILATE O parâmetro modo indica o algoritmo a ser aplicado O parâmetro valor é necessário apenas para alguns modos Para filtrar uma imagem ao invés da tela, pode-se usar o método filter() da classe PImage que tem os mesmos argumentos que a função filter() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 24 / 28

A função filter() Vários filtros comuns podem ser aplicados diretamente sobre a tela usando a função filter() que tem duas assinaturas filter(modo) filter(modo,valor) onde modo pode ser THRESHOLD, GRAY, INVERT, POSTERIZE, BLUR, OPAQUE, ERODE, ou DILATE O parâmetro modo indica o algoritmo a ser aplicado O parâmetro valor é necessário apenas para alguns modos Para filtrar uma imagem ao invés da tela, pode-se usar o método filter() da classe PImage que tem os mesmos argumentos que a função filter() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 24 / 28

A função filter() Vários filtros comuns podem ser aplicados diretamente sobre a tela usando a função filter() que tem duas assinaturas filter(modo) filter(modo,valor) onde modo pode ser THRESHOLD, GRAY, INVERT, POSTERIZE, BLUR, OPAQUE, ERODE, ou DILATE O parâmetro modo indica o algoritmo a ser aplicado O parâmetro valor é necessário apenas para alguns modos Para filtrar uma imagem ao invés da tela, pode-se usar o método filter() da classe PImage que tem os mesmos argumentos que a função filter() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 24 / 28

A função filter() Vários filtros comuns podem ser aplicados diretamente sobre a tela usando a função filter() que tem duas assinaturas filter(modo) filter(modo,valor) onde modo pode ser THRESHOLD, GRAY, INVERT, POSTERIZE, BLUR, OPAQUE, ERODE, ou DILATE O parâmetro modo indica o algoritmo a ser aplicado O parâmetro valor é necessário apenas para alguns modos Para filtrar uma imagem ao invés da tela, pode-se usar o método filter() da classe PImage que tem os mesmos argumentos que a função filter() Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 24 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Exemplos de filtragem ( original ) filter(threshold,0.5); filter(threshold,0.3); filter(blur,1); filter(blur,2); filter(blur,4); filter(posterize,2); filter(posterize,4); filter(gray); filter(invert); filter(dilate); filter(dilate); filter(dilate); filter(dilate); filter(erode); filter(erode); filter(erode); filter(erode); Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 25 / 28

Combinando imagens A combinação (ou mistura) de imagens consiste em operar pixel a pixel com duas imagens ou duas porções de uma mesma imagem a fim de obter uma imagem resultado A exemplo da operação de filtragem, pode ser feita por um programa usando as funções get() e set() Alternativamente, pode-se usar a função blend() que suporta as operações de mistura mais comuns A classe PImage também dispõe de um método chamado blend() que opera sobre a própria imagem ao invés da tela Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 26 / 28

Combinando imagens A combinação (ou mistura) de imagens consiste em operar pixel a pixel com duas imagens ou duas porções de uma mesma imagem a fim de obter uma imagem resultado A exemplo da operação de filtragem, pode ser feita por um programa usando as funções get() e set() Alternativamente, pode-se usar a função blend() que suporta as operações de mistura mais comuns A classe PImage também dispõe de um método chamado blend() que opera sobre a própria imagem ao invés da tela Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 26 / 28

Combinando imagens A combinação (ou mistura) de imagens consiste em operar pixel a pixel com duas imagens ou duas porções de uma mesma imagem a fim de obter uma imagem resultado A exemplo da operação de filtragem, pode ser feita por um programa usando as funções get() e set() Alternativamente, pode-se usar a função blend() que suporta as operações de mistura mais comuns A classe PImage também dispõe de um método chamado blend() que opera sobre a própria imagem ao invés da tela Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 26 / 28

Combinando imagens A combinação (ou mistura) de imagens consiste em operar pixel a pixel com duas imagens ou duas porções de uma mesma imagem a fim de obter uma imagem resultado A exemplo da operação de filtragem, pode ser feita por um programa usando as funções get() e set() Alternativamente, pode-se usar a função blend() que suporta as operações de mistura mais comuns A classe PImage também dispõe de um método chamado blend() que opera sobre a própria imagem ao invés da tela Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 26 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

A função blend() Há duas assinaturas: blend(x,y,wid,hgt,dx,dy,dwid,dhgt,mode); blend(src,x,y,wid,hgt,dx,dy,dwid,dhgt,mode); Os parâmetros x,y,wid,hgt designam o retângulo de origem Os parâmetros dx,dy,dwid,dhgt designam o retângulo de destino Se origem e destino têm tamanho diferente, os pixels da origem são escalados para cobrir adequadamente a área de destino src, se presente, é uma PImage contendo os pixels de origem mode é uma constante que designa a operação de mistura: BLEND, ADD, SUBTRACT, DARKEST, LIGHTEST, DIFFERENCE, EXCLUSION, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, DODGE, e BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 27 / 28

Exemplos de mistura Imagem origem Imagem destino ADD Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino SUBTRACT Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino DIFFERENCE Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino DARKEST Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino LIGHTEST Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino EXCLUSION Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino MULTIPLY Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino SCREEN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino OVERLAY Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino HARD_LIGHT Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino SOFT_LIGHT Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino DODGE Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28

Exemplos de mistura Imagem origem Imagem destino BURN Claudio Esperança (PESC/COPPE/UFRJ) Processing 2 2010 28 / 28