SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Fundamentos de Processamento
Digital de Imagens
Com projetos práticos no
GNU Octave
By Jotacísio
Matematicamente falando, o que é uma imagem
monocromática?
● É uma função de duas dimensões, f(x,y), em que x e y são
coordenadas espaciais (plano), e a amplitude de f de
qualquer par de coordenadas (x, y) é chamada de
intensidade ou nível de cinza.
● Se temos um conjunto finito e discreto de valores para f, x
e y podemos chamar uma imagem de imagem digital.
● Cada elemento que compõe a imagem chamamos de pixels,
uma abreviação de picture elements.
● A nível de programação podemos dizer que uma
imagem seria um vetor bidimensional, ou matriz.
Matematicamente falando, o que é uma imagem
monocromática?
Origem
x
y
● x é a coordenada espacial
da vertical
● y é a coordenada espacial
da horizontal
● f(x,y) é um valor finito que
define a intensidade ou
nível de cinza
● f(x,y) varia de 0 a 255
f(x,y)
Expandindo para ver melhor os pixels, como fica?
Então, o que seria processamento digital de
imagens?
O conceito de PDI
● De forma ampla PDI abrange uma grande escala de Hardware,
Software e fundamentos teóricos. Mas numa visão bem específica
podemos dizer que é um conjunto de códigos algorítmicos que tem a
finalidade específica de manipular uma imagem.
● Sendo assim, a entrada e saída de um programa feito para PDI sempre
será uma imagem.
Algumas áreas que utilizam PDI
Radiologia
Tomografia axial computadorizada
Radiografia torácica
Algumas áreas que utilizam PDI
Agricultura
Milho infectado por fungo
Índice de Vegetação da Diferença Normalizada
Algumas áreas que utilizam PDI
Hardware
PCB (placa de circuito impresso)
Algumas áreas que utilizam PDI
Meteorologia
Furacão Katrina
Algumas áreas que utilizam PDI
Jogos
MultiSample Anti-Aliasing(30% de perda de desempenho)
Algumas áreas que utilizam PDI
Jogos
Tecnologia Nvidia para melhoramento de resolução de jogos que
usa o filtro gaussiano
Algumas áreas que utilizam PDI
Jogos
Tecnologia AMD para melhoramento de resolução de jogos que
simula o SSAA, um tipo de antisserrilhamento.
Passos Fundamentais
Passos Fundamentais
● Adquirir ou receber
uma imagem digital;
● Geralmente envolve
um pré- processamento,
por exemplo o
redimensionamento.
Passos Fundamentais
● Processo de manipular
uma imagem de forma
que o resultado seja mais
adequado que o original
para uma aplicação
específica;
● Baseia-se em
preferências humanas
subjetivas.
Passos Fundamentais
● Melhora visual de
uma imagem cujas
técnicas tendem a
se basear em
modelos
matemáticos ou
probabilísticos;
● Mais objetivo do que
o realce.
Passos Fundamentais
● Processamento
básico de cores e
modelos de cores de
um ambiente digital;
● A cor também é
utilizada para
extração de
características.
Passos Fundamentais
● As wavelets
constituem os
fundamentos para
representação de
imagens em vários
níveis de resolução;
● Compressão de
dados e subdivisão
da imagem de
regiões menores.
Passos Fundamentais
● Lida com as técnicas de
redução do armazenamento
necessário para salvar uma
imagem, ou a largura de
banda necessária para
transmiti-la.
Passos Fundamentais
● Lida com
ferramentas para a
extração de
componentes de
imagens úteis na
representação da
forma.
Passos Fundamentais
● Os procedimentos de
segmentação dividem uma
imagem em suas partes ou
objetos constituintes;
● Aumentam as chances de
sucesso para problemas que
requerem a identificação
individual dos objetos.
Passos Fundamentais
● Quase sempre partem do
resultado da segmentação,
correspondendo à fronteira
de uma região ou aos
pontos dentro dela;
● A descrição (ou seleção de
características) lida com a
extração de atributos que
resultem em informações de
interesse.
Passos Fundamentais
● O reconhecimento é o
processo que atribui um
rótulo a um objeto com
base em seus descritores.
Passos Fundamentais
● A codificação do
conhecimento sobre o
problema a ser abordado;
● Na prática é uma base de
dados que pode ser
armazenado de um banco e
consultado quando preciso.
● Ela dispensa um
especialista em problemas
onde é preciso fazer uma
análise das imagens ao
longo do processo ou no
final dele.
Não era pra usa software livre?
Então por favor, sejamos mais
práticos.
GNU Octave
Os famosinhos do PDI
USD 625 Livre Livre
Vantagens do octave
● Sintaxe de orientação matemática com poderosas ferramentas de
visualização e plotagem embutidos
● Software livre, roda em GNU/Linux, macOS, BSD e Windows
● Sintaxe amplamente compatível com Matlab
● É facilmente extensível e personalizável através de funções
definidas pelo usuário escritas na própria linguagem do Octave, ou
usando módulos carregados dinamicamente escritos em C ++, C,
Fortran ou outras linguagens.
Alguns comandos do terminal
Variáveis
● who: Lista os nomes das variáveis.
● whos: Lista o nome e o tipo das variáveis.
● clear: Elimina todas as variáveis da área de trabalho. Para se apagar uma ou mais
variáveis utiliza-se o comando clear seguido dos nomes das variáveis separadas por espaço.
● save: Salva as variáveis em arquivo, podendo utilizá-las novamente na próxima vez
que o programa for inicializado ou mesmo quando executado o comando clear.
● load: Recupera as variáveis previamente salvas em arquivo pelo comando save.
● clc: Limpa a janela de comandos.
Alguns comandos do terminal
Concatenação de palavras
>> a=‘Duas’;
>> b=‘ ’;
>> c=‘palavras.’;
>> [a b c]
ans =
Duas palavras.
Alguns comandos do terminal
Matrizes
>> [1,2;3,4]
ans =
1 2
3 4
>> [ans [5;6]]
ans =
1 2 3
4 5 6
Operadores Lógicos
Estruturas Condicionais
Estruturas Condicionais
Estruturas de Repetição
Primeiro exemplo prático
1. Ler a imagem – imread
2. Exibir a imagem – imshow
3. Manipular os pixels da
imagem individualmente
4. Inserir um degradê na
imagem
Segundo exemplo prático
1. Elaborar um algoritmo que
leia uma imagem e aplique a
moldura conforme mostrado
ao lado.
Terceiro exemplo prático
1. Leia a imagem Lena.jpg (im);
2. Mostre o tamanho da imagem im na janela de comando;
3. Transforme para escalas de cinza (imCinza);
4. Mostre o tamanho da imagem imCinza na janela de comando e compare os
resultados;
5. Utilizando o laço de repetição “for”, aumente o valor de cada pixel de
imCinza
em 40%, gerando a imagem saida1;
6. Utilizando o laço de repetição “for”, diminua o valor de cada pixel de imCinza
em 40%, gerando a imagem saida2;
7. Mostre em três janelas diferentes, com os nomes dos arquivos nos títulos das
janelas, as imagens imCinza, saida1 e saida2;
8. Escreva as imagens imCinza, saida1 e saida2 no disco;
9. Substitua os laços “for” por atribuições diretas;
10. Conte os tempos de execuções com e sem laços de repetição e compare os
resultados.

Más contenido relacionado

La actualidad más candente

Apresentação sobre o Word
Apresentação sobre o WordApresentação sobre o Word
Apresentação sobre o Wordguestcc9d72
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Daniel Brandão
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 
Dispositivos Ativos e Passivos
Dispositivos Ativos e PassivosDispositivos Ativos e Passivos
Dispositivos Ativos e PassivosRikelmo19
 
Tabela Ascii
Tabela AsciiTabela Ascii
Tabela Asciijkolive
 
Processamento Digital de Imagem - SIC IFCE 2014
Processamento Digital de Imagem - SIC IFCE 2014Processamento Digital de Imagem - SIC IFCE 2014
Processamento Digital de Imagem - SIC IFCE 2014Aldisio Medeiros
 
Sistemas operacionais e aplicativos
Sistemas operacionais e aplicativosSistemas operacionais e aplicativos
Sistemas operacionais e aplicativosguicabral6
 
Conceitos base de programação - parte 2
Conceitos base de programação - parte 2Conceitos base de programação - parte 2
Conceitos base de programação - parte 2João Piedade
 
Periféricos - Curso de Informática
Periféricos - Curso de InformáticaPeriféricos - Curso de Informática
Periféricos - Curso de InformáticaLeandro Martins
 
Raio X
Raio XRaio X
Raio Xtaynaz
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Aula básica de informática - Hardware e Software
Aula básica de informática - Hardware e SoftwareAula básica de informática - Hardware e Software
Aula básica de informática - Hardware e Softwarepassecursinho
 
exercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadoresexercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de ComputadoresSuzana Viana Mota
 

La actualidad más candente (20)

SO - Kernel (Nucleo)
SO - Kernel (Nucleo)SO - Kernel (Nucleo)
SO - Kernel (Nucleo)
 
Tipos de Impressoras
Tipos de ImpressorasTipos de Impressoras
Tipos de Impressoras
 
Apresentação sobre o Word
Apresentação sobre o WordApresentação sobre o Word
Apresentação sobre o Word
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Dispositivos Ativos e Passivos
Dispositivos Ativos e PassivosDispositivos Ativos e Passivos
Dispositivos Ativos e Passivos
 
Tabela Ascii
Tabela AsciiTabela Ascii
Tabela Ascii
 
RADIOLOGIA DIGITAL
RADIOLOGIA DIGITALRADIOLOGIA DIGITAL
RADIOLOGIA DIGITAL
 
Processamento Digital de Imagem - SIC IFCE 2014
Processamento Digital de Imagem - SIC IFCE 2014Processamento Digital de Imagem - SIC IFCE 2014
Processamento Digital de Imagem - SIC IFCE 2014
 
Sistemas operacionais e aplicativos
Sistemas operacionais e aplicativosSistemas operacionais e aplicativos
Sistemas operacionais e aplicativos
 
Conceitos base de programação - parte 2
Conceitos base de programação - parte 2Conceitos base de programação - parte 2
Conceitos base de programação - parte 2
 
Periféricos - Curso de Informática
Periféricos - Curso de InformáticaPeriféricos - Curso de Informática
Periféricos - Curso de Informática
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Raio X
Raio XRaio X
Raio X
 
Evolução da informática
Evolução da informáticaEvolução da informática
Evolução da informática
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Aula básica de informática - Hardware e Software
Aula básica de informática - Hardware e SoftwareAula básica de informática - Hardware e Software
Aula básica de informática - Hardware e Software
 
exercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadoresexercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadores
 
Aula I - Word
Aula I - WordAula I - Word
Aula I - Word
 
Servidores de E-mail
Servidores de E-mailServidores de E-mail
Servidores de E-mail
 

Similar a Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal

Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...FranciscoBrunodeSous
 
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...Antonio Carlos da Silva Senra Filho
 
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Opencadd Advanced Technology
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowDevMT
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowGuilherme Campos
 
Imagem Digital
Imagem DigitalImagem Digital
Imagem Digitalschool
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLTony Alexander Hild
 
Apostila Cad2000 2 D
Apostila Cad2000 2 DApostila Cad2000 2 D
Apostila Cad2000 2 Dguestf248
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Filipo Mór
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4spawally
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphereEloi Júnior
 

Similar a Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal (20)

05 imagem digital
05   imagem digital05   imagem digital
05 imagem digital
 
Guia xna
Guia xnaGuia xna
Guia xna
 
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
 
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
Automação de BackOffice de uma grande corporação financeira usando Visão Comp...
 
11477 41952-1-pb
11477 41952-1-pb11477 41952-1-pb
11477 41952-1-pb
 
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
 
Palestra
PalestraPalestra
Palestra
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlowIntrodução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
 
Imagem Digital
Imagem DigitalImagem Digital
Imagem Digital
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
 
Sistema de informação - Cad na engenharia
Sistema de informação - Cad na engenhariaSistema de informação - Cad na engenharia
Sistema de informação - Cad na engenharia
 
Aula 17
Aula   17Aula   17
Aula 17
 
Apostila Cad2000 2 D
Apostila Cad2000 2 DApostila Cad2000 2 D
Apostila Cad2000 2 D
 
Dismistificando deep learning v2.1
Dismistificando deep learning v2.1Dismistificando deep learning v2.1
Dismistificando deep learning v2.1
 
07 pre impressao
07 pre impressao07 pre impressao
07 pre impressao
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4modelagem sistema da informação Unid 4
modelagem sistema da informação Unid 4
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
 

Más de PotiLivre Sobrenome

Criando seus próprios LIVROS DIGITAIS usando Software Livre
Criando seus próprios LIVROS DIGITAIS usando Software LivreCriando seus próprios LIVROS DIGITAIS usando Software Livre
Criando seus próprios LIVROS DIGITAIS usando Software LivrePotiLivre Sobrenome
 
Crackear o pacote Adobe é crime e você sabe disso!
Crackear o pacote Adobe é crime e você sabe disso!Crackear o pacote Adobe é crime e você sabe disso!
Crackear o pacote Adobe é crime e você sabe disso!PotiLivre Sobrenome
 
Você é espionado todos os dias: Saiba como se defender | TOR project
 Você é espionado todos os dias: Saiba como se defender | TOR project Você é espionado todos os dias: Saiba como se defender | TOR project
Você é espionado todos os dias: Saiba como se defender | TOR projectPotiLivre Sobrenome
 
lternativas livres para mapas e rotas com OSM e OSRM - Sedir Morais
lternativas livres para mapas e rotas com OSM e OSRM - Sedir Moraislternativas livres para mapas e rotas com OSM e OSRM - Sedir Morais
lternativas livres para mapas e rotas com OSM e OSRM - Sedir MoraisPotiLivre Sobrenome
 
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...PotiLivre Sobrenome
 
Thayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web ServicesThayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web ServicesPotiLivre Sobrenome
 
João Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big DataJoão Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big DataPotiLivre Sobrenome
 
Security updates por que voce deveria aceitar os updates da sua distro leo...
Security updates  por que voce deveria aceitar os updates da sua distro   leo...Security updates  por que voce deveria aceitar os updates da sua distro   leo...
Security updates por que voce deveria aceitar os updates da sua distro leo...PotiLivre Sobrenome
 
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018PotiLivre Sobrenome
 
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...PotiLivre Sobrenome
 
LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018PotiLivre Sobrenome
 
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018PotiLivre Sobrenome
 
O desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do NorteO desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do NortePotiLivre Sobrenome
 
Softwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para MatematicaSoftwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para MatematicaPotiLivre Sobrenome
 
Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016PotiLivre Sobrenome
 
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...PotiLivre Sobrenome
 
O que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivreO que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivrePotiLivre Sobrenome
 

Más de PotiLivre Sobrenome (20)

Gestão de ativos com o GPLI
Gestão de ativos com o GPLIGestão de ativos com o GPLI
Gestão de ativos com o GPLI
 
O poder do software livre
O poder do software livreO poder do software livre
O poder do software livre
 
Criando seus próprios LIVROS DIGITAIS usando Software Livre
Criando seus próprios LIVROS DIGITAIS usando Software LivreCriando seus próprios LIVROS DIGITAIS usando Software Livre
Criando seus próprios LIVROS DIGITAIS usando Software Livre
 
Crackear o pacote Adobe é crime e você sabe disso!
Crackear o pacote Adobe é crime e você sabe disso!Crackear o pacote Adobe é crime e você sabe disso!
Crackear o pacote Adobe é crime e você sabe disso!
 
Você é espionado todos os dias: Saiba como se defender | TOR project
 Você é espionado todos os dias: Saiba como se defender | TOR project Você é espionado todos os dias: Saiba como se defender | TOR project
Você é espionado todos os dias: Saiba como se defender | TOR project
 
lternativas livres para mapas e rotas com OSM e OSRM - Sedir Morais
lternativas livres para mapas e rotas com OSM e OSRM - Sedir Moraislternativas livres para mapas e rotas com OSM e OSRM - Sedir Morais
lternativas livres para mapas e rotas com OSM e OSRM - Sedir Morais
 
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
Facilitando o uso de RegEx em Python através de um pacote de código aberto - ...
 
Thayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web ServicesThayron Arrais - AWS Amazon Web Services
Thayron Arrais - AWS Amazon Web Services
 
João Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big DataJoão Marcos Araújo do Valle - Big Data
João Marcos Araújo do Valle - Big Data
 
Igor Oliveira - Puppet
Igor Oliveira - PuppetIgor Oliveira - Puppet
Igor Oliveira - Puppet
 
Security updates por que voce deveria aceitar os updates da sua distro leo...
Security updates  por que voce deveria aceitar os updates da sua distro   leo...Security updates  por que voce deveria aceitar os updates da sua distro   leo...
Security updates por que voce deveria aceitar os updates da sua distro leo...
 
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
Como ganhar dinheiro com Software Livre Matheus Oliveira Flisol Natal 2018
 
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
Mudando para o Software Livre sem complicacao - Diogenes Dantas - FLISOL Nata...
 
LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018LibreFlix-org - FLISOL Natal 2018
LibreFlix-org - FLISOL Natal 2018
 
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
O que e Software Livre, Comunidade PotiLivre e FLISOL - FLISOL Natal 2018
 
O desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do NorteO desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
O desafio de levar a filosofia do Software Livre para o Rio Grande do Norte
 
Softwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para MatematicaSoftwares Educativos Livres e Recursos Educacionais abertos para Matematica
Softwares Educativos Livres e Recursos Educacionais abertos para Matematica
 
Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016Softwares Educativos Livres - PotiCon 2016
Softwares Educativos Livres - PotiCon 2016
 
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
 
O que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivreO que e joomla - Jose Roberto - Encontro PotiLivre
O que e joomla - Jose Roberto - Encontro PotiLivre
 

Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal

  • 1. Fundamentos de Processamento Digital de Imagens Com projetos práticos no GNU Octave By Jotacísio
  • 2. Matematicamente falando, o que é uma imagem monocromática? ● É uma função de duas dimensões, f(x,y), em que x e y são coordenadas espaciais (plano), e a amplitude de f de qualquer par de coordenadas (x, y) é chamada de intensidade ou nível de cinza. ● Se temos um conjunto finito e discreto de valores para f, x e y podemos chamar uma imagem de imagem digital. ● Cada elemento que compõe a imagem chamamos de pixels, uma abreviação de picture elements. ● A nível de programação podemos dizer que uma imagem seria um vetor bidimensional, ou matriz.
  • 3. Matematicamente falando, o que é uma imagem monocromática? Origem x y ● x é a coordenada espacial da vertical ● y é a coordenada espacial da horizontal ● f(x,y) é um valor finito que define a intensidade ou nível de cinza ● f(x,y) varia de 0 a 255 f(x,y)
  • 4. Expandindo para ver melhor os pixels, como fica?
  • 5. Então, o que seria processamento digital de imagens?
  • 6. O conceito de PDI ● De forma ampla PDI abrange uma grande escala de Hardware, Software e fundamentos teóricos. Mas numa visão bem específica podemos dizer que é um conjunto de códigos algorítmicos que tem a finalidade específica de manipular uma imagem. ● Sendo assim, a entrada e saída de um programa feito para PDI sempre será uma imagem.
  • 7. Algumas áreas que utilizam PDI Radiologia Tomografia axial computadorizada Radiografia torácica
  • 8. Algumas áreas que utilizam PDI Agricultura Milho infectado por fungo Índice de Vegetação da Diferença Normalizada
  • 9. Algumas áreas que utilizam PDI Hardware PCB (placa de circuito impresso)
  • 10. Algumas áreas que utilizam PDI Meteorologia Furacão Katrina
  • 11. Algumas áreas que utilizam PDI Jogos MultiSample Anti-Aliasing(30% de perda de desempenho)
  • 12. Algumas áreas que utilizam PDI Jogos Tecnologia Nvidia para melhoramento de resolução de jogos que usa o filtro gaussiano
  • 13. Algumas áreas que utilizam PDI Jogos Tecnologia AMD para melhoramento de resolução de jogos que simula o SSAA, um tipo de antisserrilhamento.
  • 15. Passos Fundamentais ● Adquirir ou receber uma imagem digital; ● Geralmente envolve um pré- processamento, por exemplo o redimensionamento.
  • 16. Passos Fundamentais ● Processo de manipular uma imagem de forma que o resultado seja mais adequado que o original para uma aplicação específica; ● Baseia-se em preferências humanas subjetivas.
  • 17. Passos Fundamentais ● Melhora visual de uma imagem cujas técnicas tendem a se basear em modelos matemáticos ou probabilísticos; ● Mais objetivo do que o realce.
  • 18. Passos Fundamentais ● Processamento básico de cores e modelos de cores de um ambiente digital; ● A cor também é utilizada para extração de características.
  • 19. Passos Fundamentais ● As wavelets constituem os fundamentos para representação de imagens em vários níveis de resolução; ● Compressão de dados e subdivisão da imagem de regiões menores.
  • 20. Passos Fundamentais ● Lida com as técnicas de redução do armazenamento necessário para salvar uma imagem, ou a largura de banda necessária para transmiti-la.
  • 21. Passos Fundamentais ● Lida com ferramentas para a extração de componentes de imagens úteis na representação da forma.
  • 22. Passos Fundamentais ● Os procedimentos de segmentação dividem uma imagem em suas partes ou objetos constituintes; ● Aumentam as chances de sucesso para problemas que requerem a identificação individual dos objetos.
  • 23. Passos Fundamentais ● Quase sempre partem do resultado da segmentação, correspondendo à fronteira de uma região ou aos pontos dentro dela; ● A descrição (ou seleção de características) lida com a extração de atributos que resultem em informações de interesse.
  • 24. Passos Fundamentais ● O reconhecimento é o processo que atribui um rótulo a um objeto com base em seus descritores.
  • 25. Passos Fundamentais ● A codificação do conhecimento sobre o problema a ser abordado; ● Na prática é uma base de dados que pode ser armazenado de um banco e consultado quando preciso. ● Ela dispensa um especialista em problemas onde é preciso fazer uma análise das imagens ao longo do processo ou no final dele.
  • 26. Não era pra usa software livre? Então por favor, sejamos mais práticos. GNU Octave
  • 27. Os famosinhos do PDI USD 625 Livre Livre
  • 28. Vantagens do octave ● Sintaxe de orientação matemática com poderosas ferramentas de visualização e plotagem embutidos ● Software livre, roda em GNU/Linux, macOS, BSD e Windows ● Sintaxe amplamente compatível com Matlab ● É facilmente extensível e personalizável através de funções definidas pelo usuário escritas na própria linguagem do Octave, ou usando módulos carregados dinamicamente escritos em C ++, C, Fortran ou outras linguagens.
  • 29. Alguns comandos do terminal Variáveis ● who: Lista os nomes das variáveis. ● whos: Lista o nome e o tipo das variáveis. ● clear: Elimina todas as variáveis da área de trabalho. Para se apagar uma ou mais variáveis utiliza-se o comando clear seguido dos nomes das variáveis separadas por espaço. ● save: Salva as variáveis em arquivo, podendo utilizá-las novamente na próxima vez que o programa for inicializado ou mesmo quando executado o comando clear. ● load: Recupera as variáveis previamente salvas em arquivo pelo comando save. ● clc: Limpa a janela de comandos.
  • 30. Alguns comandos do terminal Concatenação de palavras >> a=‘Duas’; >> b=‘ ’; >> c=‘palavras.’; >> [a b c] ans = Duas palavras.
  • 31. Alguns comandos do terminal Matrizes >> [1,2;3,4] ans = 1 2 3 4 >> [ans [5;6]] ans = 1 2 3 4 5 6
  • 36. Primeiro exemplo prático 1. Ler a imagem – imread 2. Exibir a imagem – imshow 3. Manipular os pixels da imagem individualmente 4. Inserir um degradê na imagem
  • 37. Segundo exemplo prático 1. Elaborar um algoritmo que leia uma imagem e aplique a moldura conforme mostrado ao lado.
  • 38. Terceiro exemplo prático 1. Leia a imagem Lena.jpg (im); 2. Mostre o tamanho da imagem im na janela de comando; 3. Transforme para escalas de cinza (imCinza); 4. Mostre o tamanho da imagem imCinza na janela de comando e compare os resultados; 5. Utilizando o laço de repetição “for”, aumente o valor de cada pixel de imCinza em 40%, gerando a imagem saida1; 6. Utilizando o laço de repetição “for”, diminua o valor de cada pixel de imCinza em 40%, gerando a imagem saida2; 7. Mostre em três janelas diferentes, com os nomes dos arquivos nos títulos das janelas, as imagens imCinza, saida1 e saida2; 8. Escreva as imagens imCinza, saida1 e saida2 no disco; 9. Substitua os laços “for” por atribuições diretas; 10. Conte os tempos de execuções com e sem laços de repetição e compare os resultados.