pesquisa aplicada à computação utilizando matlab® anderson vinícius alves ferreira...

Post on 07-Apr-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Pesquisa Aplicada à Computação utilizando MatLab®

Anderson Vinícius Alves Ferreiraanderson_vinicius@msn.comLeonardo Vidal Batista (Tutor)

leonardo@di.ufpb.br

www.pet.di.ufpb.br

Sumário

Imagens Digitais Monocromáticas e Coloridas

Operações com Imagens Operações Pontuais: Negativo e Controle de Brilho Operações Locais: Eliminação de Ruídos e Detecção

de Bordas MatLab®

O que é? Por que usar? A linguagem MatLab® MatLab® aplicado ao Processamento de Imagens

Imagens Digitais Imagens Digitais são utilizadas e aplicadas a

diversos fins, dentre eles: TV Digital; Câmeras e filmadoras digitais, scanners, celulares,

DVDs; Sistemas de teleconferência; Monitoramento da superfície terrestre e previsão

climáticas por imagens de satélites; Detecção de movimento; Diagnóstico médico: ultrassonografia, tomografia,

ressonância magnética, contagem de células, etc.; Identificação biométrica: reconhecimento de face, íris

ou impressões digitais; Controle de qualidade; Granulometria de minérios.

Imagens Monocromáticas

y

x

Função Im(x, y) (x, y) : coordenadas espaciais Im(x, y) : intensidade luminosa (ou brilho, ou nível de cinza)

da imagem em (x, y)

Imagens Monocromáticas

95...163163............

142...161161142...161161

Representação Matricial Uma imagem é uma matriz bidimensional

observada de forma pictórica Cada elemento (i, i) da matriz representa o

valor da intensidade ou brilho na imagem

Imagens Coloridas (Imagens RGB)

Imagem com três matrizes combinadas Banda R: matriz com os valores de intensidade

de VERMELHO na imagem; Banda G: matriz com os valores de intensidade

de VERDE na imagem; Banda B: matriz com os valores de intensidade

de AZUL na imagem;

Imagens Coloridas (Imagens RGB)

Banda R Banda G Banda B

Imagem RGB

Operações com Imagens (Pontuais) Negativo

RGB R = 255 – R; G = 255 – G; B = 255 – B;

Controle de Brilho Brilho Aditivo

Pixel_resultante = Pixel_atual + C;

Brilho Multiplicativo Pixel_resultante = Pixel_atual * C;

Operações com Imagens (Pontuais)

Imagem Original Negativo da Imagem

Operações com Imagens (Locais) O valor resultante do pixel depende dos valores atuais

dos pixels na vizinhança

i

j

Vizinhança de (i, j)

i

j

f g

Operações com Imagens (Locais)

Eliminação de Ruídos Filtro da Média

O valor do pixel g(i, j) é a média dos valores dos pixels de f em uma vizinhança de (i, j) contendo n pixels.

Operações com Imagens (Locais) Detecção de Bordas

Gradiente de Prewitt O valor do pixel g(i, j) é uma aproximação discreta do

módulo do vetor gradiente nas coordenadas (i, j) da imagem f de entrada

Operações com Imagens (Locais)

MatLab®

O que é MatLab®?

MatLab® (MATrix LABoratory)

Linguagem de programação de alta performance voltada à computação técnica

Ambiente de programação, visualização e computação, extremamente fácil de usar e muito intuitivo – problemas e soluções são expressos em uma notação matemática familiar

Por que usar o MatLab®?

Facilidade e rapidez na prototipação de aplicativos;

É de rápido aprendizado, possuindo uma vasta documentação;

Enorme biblioteca de funções para processamento de imagens;

Muitas ferramentas para visualização; Muito utilizado no ensino e pesquisa em

indústrias e universidades.

A linguagem MatLab®

Linguagem de alto nível baseada em MATRIZES, com instruções de controle de fluxo, funções, estrutura de dados, entrada/saída, e características de POO

Possui uma vasta coleção de algoritmos computacionais para cálculos de funções elementares (soma, seno, cosseno, aritmética de números complexos) até as mais sofisticadas (inversão de matrizes, autovetores de matrizes, funções de Bessel, transformada rápida de Fourier), como também uma extensa gama de funções relacionadas ao processamento de sinais

A Linguagem MatLab®

Tudo (TUDO MESMO) no MatLab® é uma MATRIZ!

É uma linguagem interpretada (não é necessário compilar o código)

Não é necessário: Declarar variáveis (e suas dimensões) Alocar memória e usar ponteiros

Os programas podem ser depurados passo a passo, com acesso às suas variáveis, funções, etc.

A Linguagem MatLab®

O COMANDO MAIS IMPORTANTE

Fornece ajuda para qualquer outro comando.

Outro comando também importante é o lookfor, que procura entre todas as funções do MatLab® a palavra-chave especificada.

HELP

A Linguagem MatLab®

Comando HELP

Comando LOOKFOR

A Linguagem MatLab®

Tipos de Dados

A Linguagem MatLab®

Operadores Aritméticos

A Linguagem MatLab®

Operadores Relacionais e Lógicos

A Linguagem MatLab®

Um exemplo simples:a = 1

while (length(a) < 10),

a = [0 a] + [a 0]

end;

a = 1a = 1 1a = 1 2 1a = 1 3 3 1a = 1 4 6 4 1a = 1 5 10 10 5 1a = 1 6 15 20 15 6 1a = 1 7 21 35 35 21 7 1a = 1 8 28 56 70 56 28 8 1a = 1 9 36 84 126 126 84 36 9 1

Gera o triângulo de Pascal:

A Linguagem MatLab®

Outro exemplo simples (1):t = 0:pi/100:2*pi;

y = sin(t);

plot(t,y);

A Linguagem MatLab®

Outro exemplo simples (2):t = 0:pi/100:2*pi;

y = sin(t);

plot(t,y)

TUDO NO MATLAB É UMA MATRIZ!Lembrem-se

Cria uma matriz 1 x 201:

Cria outra matriz 1 x 201 (o resultado):

Plota o resultado versus a primeira matriz!

Matrizes

Qualquer dado no MatLab® é armazenado como uma matriz Um único número é, na verdade, uma matriz

1x1 Qualquer variável pode receber qualquer

matrizLinhas e Colunas sempre têm indexação

iniciada por “1” Elementos individuais são referenciados

(acessados) pela linha e pela coluna

Matrizes

Mat

riz

6 x

10Se “m” é esta matriz, então:m(5,4) = 19 (linha, coluna)

No Matlab, as linhas e colunas são numeradas a partir de “1”!

Matrizes

Construindo matrizes com “[ ]”: A = [2 7 4]

A = [2; 7; 4]

A = [2 7 4; 3 8 9]

B = [ A A ]

2 7 4

274

2 7 43 8 9

?

Matrizes

Construindo matrizes com “[ ]”: A = [2 7 4]

A = [2; 7; 4]

A = [2 7 4; 3 8 9]

B = [ A A ]

2 7 4

274

2 7 43 8 9

2 7 43 8 9

2 7 43 8 9

Matrizes

Operando com matrizes: Em várias linguagens deve-se escrever laços (loops)

para trabalhar com os elementos de uma estrutura de dados (um vetor, por exemplo).

No Matlab, laços podem (e DEVEM) ser evitados. Por exemplo,

a = [4 5 1 ; 3 6 8] + 1 => a = [5 6 2 ; 4 7 9]

O número “1” foi adicionado a cada um dos elementos da matriz “a”

Matrizes

Funções de operação com matrizes Multiplicação matricial e multiplicação ponto a ponto

Matrizes

Funções de operação com matrizes eye – Matriz Identidade ones – Cria uma matriz de “1s” zeros – Cria uma matriz de “0s” find – Localização de valores size – Dimensão de matrizes : (dois pontos) – Vetor regularmente espaçado rand – Cria uma matriz de números

randômicos uniformemente distribuídos cat – Concatena matrizes

Matrizes

Funções de operação com vetor (matriz-linha) sum – Soma dos elementos prod – Produto dos elementos sort – Ordena os elementos em ordem ascendente cumsum – Soma cumulativa cumprod – Produto cumulativo max – Máximos elementos de um vetor min – Mínimos elementos de um vetor mean – Média ou valor médio de vetores

Matrizes

Dimensões

Matrizes

Uma matriz pode ser indexada através de outra matriz, de tal maneira que seja produzido um subconjunto dos seus elementos: a = [100 200 300 400 500 600 700] b = [2 4 7] c = a(b)

200 400 700

Matrizes

Para obter uma subseção de uma matriz, pode-se utilizar a matriz-índice a partir do operador “:” (dois pontos): a(2:5)

Funciona também em duas dimensões c(2:3, 1:2), por exemplo, produz uma

submatriz 2 x 2.

200 300 400 500

Controle de Fluxo

if, else, e elseif

Controle de Fluxo

switch, case, e otherwise

Controle de Fluxo

for

while

Criação de Funções MatLab®

Arquivos .m Sintaxe:

function [ret1,ret2,...,retn] = nome da função (input1,input2,...,inputn)%Comentarios

corpo da função;end;

Processamento de Imagens

E o que o MatLab® tem a ver com o

Processamento de Imagens?

Processamento de Imagens

Simples:

Imagens podem ser tratadas como

matrizes!

Processamento de Imagens

Carregando e exibindo uma imagem:a = imread(‘picture.jpg’);

imshow(a);

Processamento de Imagens

Imagens RGB: Uma imagem

RGB pode ser double (contendo valores na faixa [0,1]) ou uint8 (contendo valores na faixa [0,255]).

Processamento de Imagens

Imagens RGB: Nesta única matriz com dimensões m-por-n-

por-3, “m” e “n” são a quantidade de linhas e colunas dos pixels na imagem, enquanto que a terceira dimensão consiste de três planos contendo as intensidades vermelha, verde e azul.

Para cada pixel na imagem, os valores vermelho verde e azul são combinados para formar a cor real do pixel.

Processamento de Imagens

Tamanho da imagem (matriz):

size(a)

384 512 3

R G B

384

512

Processamento de Imagens

Imagens coloridas: Mostrando o plano R.a(:,:,2:3) = 0;

imshow(a);

Processamento de Imagens

Imagens coloridas: Mostrando o plano G.a(:,:,[1 3]) = 0;

imshow(a);

Processamento de Imagens

Imagens coloridas: Mostrando o plano B.a(:,:,1:2) = 0;

imshow(a);

Processamento de Imagens

Abrir imagem im = imread(‘nome do arquivo’);

Exibir imagem imshow(nome da variavel);

Salvar imagem imwrite(nome da variavel, ‘nome do arquivo’);

E por falar nisso...

O MatLab® também pode lidar com: Filmes; Objetos em três dimensões; …

Conclusão: O MatLab® é uma ferramenta para

manipulação de sinais digitais muito poderosa, já que sinais podem ser tratados como matrizes.

top related