segunda-feira, 29 de março de 2010

Filtro RGB

Estou disponibilizando os arquivos de um dos meus primeiros testes de Pixel Bender Toolkit acoplado ao Flash CS4.
É uma adaptação do produto final de:



Neste arquivo, você pode alterar os valores de cores RGB da imagem em questão, clicando nos botões coloridos, alterando apenas um valor de cor (R ou G ou B) ou, clicando no botão RGB, alterar os três valores de acordo com os dados de entrada.
É importante notar que ele não substitui o valor original do pixel, mas realiza uma adição do tipo: valor_original += 0,5*valor_de_entrada.

teste filtro RGB.rar | 516 Kb

sábado, 27 de março de 2010

Tutorial - link

Olá,
Passando para deixar um bom link.
É um tutorial de como fazer a conexão entre Pixel Bender Toolkit e Flash.
Vale a pena conferir


Vale a pena conferir.

Abração

sábado, 20 de março de 2010

Modelos de Cores (1)

Começarei agora um estudo sobre modelos de cores. São notas das minhas aulas, junto com algumas pesquisas feitas na internet e nos livros indicados anteriormente.
Será um estudo continuado, dividido em alguns posts.
Ao final, disponibilizarei um arquivo em pdf do mesmo.


Modelos de Cores

A cor é uma percepção visual provocada pela ação de um feixe de fotons sobre células especializadas da retina, que transmitem através de informação pré-processada no nervo óptico, impressões para o sistema nervoso.

A cor de um material é determinada pelas médias de frequência dos pacotes de onda que as suas moléculas constituintes refletem. Um objeto terá determinada cor se não absorver justamente os raios correspondentes à frequência daquela cor.

Assim, um objeto é vermelho se absorve preferencialmente as frequências fora do vermelho.

A cor é relacionada com os diferentes comprimento de onda do espectro eletromagnético. São percebidas pelas pessoas, em faixa específica (zona do visível), e por alguns animais através dos órgaos de visão, como uma sensação que nos permite diferenciar os objetos do espaço com maior precisão.

Como pode ser visto na figura acima, cada cor é caracterizada por uma faixa de comprimentos de onda. Dentro desta faixa, podemos encontrar os diferentes tons das mesmas.

Considerando as cores como luz, a cor branca resulta da sobreposição de todas as cores, enquanto o preto é a ausência de luz. Uma luz branca pode ser decomposta em todas as cores (o espectro) por meio de um prisma. Na natureza, esta decomposição origina um arco-íris.

Objetos de mesma cor podem apresentar diferentes tons devido a quantidade ou a qualidade da luz que incide sobre eles.

O objetivo de um modelo de cores é facilitar a especificação das cores em uma forma normalizada e aceita genericamente. Essas cores podem ser reproduzidas a partir de dois conceitos muito interessantes: o modelo de cores aditivas e o modelo de cores subtrativas.

Existem alguns modelos orientados ao hardware que são usados nos gráficos por computador. São eles:

  • RGB (Vermelho, Verde, Azul)
  • CMYK (Ciano, Magenta, Amarelo, Preto)
  • HSI (Intensidade, Tom, Saturação)
  • YIQ (Luminosidade ou brilho, Fase, Quadratura)

RGB

O modelo de cores RGB é um modelo aditivo no qual o vermelho, o verde e o azul (usados em modelos aditivos de luzes) são combinados de várias maneiras para reproduzir outras cores. O nome do modelo e a abreviação RGB vêm das três cores primárias: vermelho, verde e azul (Red, Green e Blue, em inglês), e só foi possível devido ao desenvolvimento tecnológico de tubos de raios catódicos – com os quais foi possível fazer o display de cores ao invés de uma fosforescência monocromática (incluindo a escala de cinza), como no filme preto e branco e nas imagens de televisão antigas.

Estas três cores não devem ser confundidas com os pigmentos primários Ciano, Magenta e Amarelo, conhecidos no mundo das artes como “cores primárias”, já que se combinam baseadas na reflexão e absorção de fótons visto que o RGB depende da emissão de fótons de um componente excitado a um estado de energia mais elevado (fonte emissora, por exemplo, o tubo de raios catódicos).

O modelo de cores RGB, por si só, não define o que significa “vermelho”, “verde” ou “azul” (espectroscopicamente), e então os resultados de misturá-los não são tão exatos (e sim relativos, na média da percepção do olho humano).

O termo RGBA é também usado, significando Red, Green, Blue e Alfa. Este não é um modelo de cores diferente, e sim uma representação – uma vez que o Alpha é usado para indicar transparência. Em modelos de representação de cores de satélite, por exemplo, o Alpha pode representar o efeito de turbidez ocasionado pela atmosfera - deixando as cores com padrões mais opacos do que seria a realidade.

CMYK

CMYK é a abreviatura do sistema de cores formado por Ciano (Cyan), Magenta (Magenta), Amarelo (Yellow) e Preto (black). A letra K no final significa Key pois o preto que é obtido com as três primeiras cores, CMY, não reproduz fielmente tons mais escuros, sendo necessário a aplicação de preto "puro".

O CMYK funciona devido à absorção de luz, pelo que as cores que são vistas vêm da parte da luz que não é absorvida. Este sistema é empregado por imprensas, impressoras e fotocopiadoras para reproduzir a maioria das cores do espectro visível, e é conhecido como quadricromia. É o sistema subtrativo de cores, em contraposição ao sistema aditivo, o RGB.

Ciano é a cor oposta ao vermelho, o que significa que actua como um filtro que absorve a dita cor (-R +G +B). Da mesma forma, magenta é a oposta ao verde (+R -G +B) e amarelo é a oposta ao azul (+R +G -B). Assim, magenta mais amarelo produzirá vermelho, magenta mais ciano produzirá azul e ciano mais amarelo produzirá verde.


CMYK ou RGB?

O padrão CMYK é o mais e mlhor usado para impressão, enquanto que monitores e televisões usam o padrão RGB (Vermelho (Red), Verde (Green) e Azul (Blue)), onde são usadas apenas três cores. Como o CMYK que se usa na indústria gráfica é baseado na mistura de tintas sobre o papel e o CMYK usado nos sistemas de computador não passa de uma variação do RGB, nem todas as cores vistas no monitor podem ser conseguidas na impressão, uma vez que o espectro de cores CMYK (gráfico) é significativamente menor que o RGB. Alguns programas gráficos incorporam filtros que tentam mostrar no monitor a imagem como será impressa.

Além do CMYK e do RGB, existem outros padrões de cores, como o Pantone, onde em lugar de um certo número de cores primárias que são combinadas para gerar as demais, tem-se um conjunto maior de tintas especiais, que misturadas entre si, produzem na impressão uma gama de cores consistente com o que é visto em um mostruário.

Se colocarmos a mesma quantidade de vermelho, verde e azul, teremos tons de cinza, de branco a preto.

continua...

MATLAB

Olá
Você sabia que é possível trabalhar com Processamento de Imagens em MATLAB?
Quando estive estudando no México, em 2008, criei este pequeno software para estudar umm pouco os filtros e transformações. O trabalho deveria ser feito em alguma linguagem de programação, no meu caso, escolhi java. Mas deveriam ser feitos também, testes em MATLAB, para conferir os resultados obtidos.
Quando estivermos discutindo, aqui no blog, os filtros e transformações, farei comentários sobre as funções criadas no MATLAB, assim você poderá, junto comiigo, aprender um pouco mais sobre essa poderosa ferramenta.
Aguardem

Esta figura ilustra o software produzido para a disciplina Procesamiento de Imágenes Digitales.

sexta-feira, 19 de março de 2010

Formatos de Imagem

Para entender melhor o Processamento de Imagens, devemos entender os diferentes tipos de imagens existentes e onde são usados cada um deles. Encontrei algumas informações interessantes sobre os formatos:
  • BMP
  • TIFF
  • JPG
  • GIF
  • PNG
Disponibilizo uma tabela no arquivo em PDF abaixo com alguns dados como características, vantagens e desvantagens de cada um.
Nos próximos posts, vou descrever como são organizados os tipos de imagens mais usados. Aguardem

formatos.pdf | 191 Kb

Passos para o PDI

O processamento de imagens digitais pode ser entendido como a melhoria da informação pictórica para a interpretação humana. Pode também ser encarado como o processamento dos dados de uma cena, através da máquina, para a percepção humana.

Existem muitos campos de aplicação para o processamento digital de imagens, como a biologia e a medicina, por exemplo. Estas requerem análises de imagens não-perceptíveis aos olhos humanos, como imagens de células por exemplo. Podemos citar também, as aplicações em astronomia, nas quais se faz necessário o estudo de imagens interplanetárias, fora do alcance da visão humana.

A análise de impressões digitais também é um bom exemplo do reconhecimento de padrões em imagens. Muitos criminosos somente podem ser reconhecidos e identificados graças à análise das digitais encontradas na cena do crime, por exemplo. Sabemos que as impressões digitais são identificadores naturais únicos dos seres humanos. São todas muito parecidas, mas nenhuma é igual a outra. A comparação de uma digital encontrada com outra pertencente a um banco de dados, permite-nos identificar a quem ela pertence.

Algo semelhante acontece com a leitura de retina. É preciso identificar os padrões e compará-los com um banco de dados para identificar uma pessoa.
Através dos exemplos acima citados, podemos perceber que o processamento das imagens digitais é de extrema importância ao homem quando se trata de estudos de objetos em micro e/ou macro proporções.

Uma sonda espacial deve ser controlada a distância. Existem muitos sensores que dizem sua posição, velocidade, aceleração e outros fatores de suma importância para esse controle, como os sensores ultra-sônicos ou infravermelhos. A análise das imagens obtidas por uma câmera acoplada a ela pode dar um detalhamento maior do ambiente em que ela se encontra, como cores e texturas, por exemplo. Também podemos, pelo processamento dos dados obtidos por esta câmera, definir sua posição e a posição dos elementos a sua volta.

A localização de objetos em locais de difícil acesso humano torna-se um trabalho difícil de ser realizado. Entretanto, é possível analisar imagens de tais locais e, identificando e comparando padrões, dizer com certo nível de precisão qual a posição real deste objeto.

Existem etapas fundamentais no procedimento de processar uma imagem. Estas podem ser vistas na figura abaixo e comentadas a seguir.


Todo o processo começa com a aquisição de imagens, que pode ser feita através de muitos dispositivos, como câmeras fotográficas ou filmadoras e scanners, por exemplos.

O segundo passo é o pré-processamento, onde são aplicados filtros para melhoria da imagem a ser analisada.

A segmentação e em seguida a representação e descrição formam um bloco de aplicações de transformadas no espaço ou na freqüência sobre a matriz de dados da imagem e análises de uma base de conhecimentos para enfim chegar ao reconhecimento e interpretação de padrões existentes na imagem original que podem trazer informações relevantes ao resultado.

Adobe Pixel Bender Toolkit



Olá,

gostaria de apresentar-lhes a ferramenta de edição de imagens que é usada no flash. Trata-se da Adobe Pixel Bender, uma tecnologia que oferece uma infra-estrutura comum de processamento de imagem e vídeo que proporciona otimização de tempo de execução automática de hardware.

Você pode usar a linguagem do kernel Pixel Bender para implementar algoritmos de processamento de imagem (filtros e efeitos), em um hardware de forma independente. A linguagem gráfica Pixel Bender é uma linguagem baseada em XML para combinar pixel individual e operações de processamento (núcleos) para o mais complexo filtro Pixel Bender.

Existe uma série de tutoriais da Adobe muito boa no seguinte link:

http://www.adobe.com/devnet/pixelbender/

No projeto imagine, filtros criados pelo Pixel Pender Toolkit serão incorporados ao Flash para o ensino do processamento de imagens. Veja um exemplo de filtro criado para aplicação de uma transformação de translação à uma imagem:


Nos próximos posts, começarei a explicar como uma imagem pode ser processada.
Aguardem!

domingo, 7 de março de 2010

Filme Fotográfico


Olá!

Você sabe como é organizado um filme fotográfico? Quais são suas camadas e qual a funcionalidade de cada uma?
E quanto a geometria da imagem? Sabe como é feita uma transformação de escala, translação ou rotação?

Estou disponibilizando para download um arquivo de apresentação em power point feito por mim em 2008 para a disciplina de "Procesamiento Digital de Imágenes", na Universidad Autónoma de San Luis Potosí - México. Cursei esta disciplina enquanto fiz um intercâmbio internacional no México. Aproveito para deixar um abraço aos colegas potosinos e ao professor Paco.


exposicion_pedro.ppsx | 480 KB

Sugestões de Livros

Olá!
Quero sugerir dois livros de Processamento de Imagens. São dois dos principais títulos da minha bibliografia e acredito que podem ajudar demais nos estudos.
O primeiro é "Análise de Imagens Digitais. Princípios, algoritmos e Aplicações" de Helio Pedrini e William Robson Schwartz

ISBN 978-85-221-0595-3

O livro foi indicado como um dos 10 finalistas ao Prêmio Jabuti 2008 na categoria Ciências Exatas, Tecnologia e Informática.


e também "Processamento de Imagens Digitais" de Rafael C. Gonzalez

ISBN 8521202644
Sem dúvida são excelentes livros. Bem completos e de fácil acesso.


Teste de Layout

Olá!
Estou trabalhando no processo de criação do layout do software.
Optei por utilizar o Flash, da Adobe, que é um excelente programa para animação e desenvolvimento. Já trabalho com Flash há alguns anos e acredito que será um bom desafio para mim descobrir novas funcionalidades que estão surgindo, como a aplicação de filtros, com auxílio do Pixel Bender Toolkit e a realidade aumentada, usando o flartoolkit.
Bom, esta é minha primeira ideia de layout.


Procurei criar um layout limpo, onde as barras de ferramentas possam ser arrastadas, assim o usuário pode criar a sua área de trabalho conforme sua necessidade. As cores o reflexo no canto superior esquerdo, dando uma leve impressão de iluminação, refletem a idéia do nome IMAGINE, criando um espaço leve e dinâmico.
Foi reservado no canto inferior direito um espaço para a licença Creative Commons, que garante os direitos de autoria e a livre distribuição do software (falarei mais sobre o selo posteriormente).
Por enquanto esta é a ideia. Estou aberto a sugestões e críticas.
Aguardem os próximos posts.

Apresentação

Olá!
Como primeiro post deste blog, gostaria de me apresentar e também ao projeto IMAGINE.

Meu nome é Pedro Henrique Cacique Braga e sou estudante de Engenharia Elétrica, com certificado em Engenharia de Computação, pela Universidade federal de Uberlândia, a UFU.
Atualmente estou no último período e este blog está sendo criado para registrar minhas pesquisas e o desenvolvimento do meu trabalho de conclusão de curso.
O tema principal deste trabalho é Processamento Digital de Imagens.
O objetivo é criar um software que auxilie no ensino desta disciplina. A linguagem de programação principal escolhida é a actionscript, usando o software de edição Adobe Flash CS4.
Neste blog você poderá encontrar desde teorias no processamento de imagens até tutoriais de Flash.

Seja bem-vindo!

Sempre que quiser entrar em contato, você pode enviar-me um email: phcacique@gmail.com ou então através dos comentários deste blog mesmo.

Fique a vontade para conhecer um pouco mais do projeto IMAGINE.