Processamento de Imagens

Documentos relacionados
SEL5886 Visão Computacional Prof. Dr. Marcelo Andrade da Costa Vieira

Introdução FILTRAGEM NO DOMÍNIO DA FREQUÊNCIA

SEL Processamento Digital de Imagens Médicas. Aula 6 Processamento no Domínio da Frequência

SEL5886 Visão Computacional Prof. Dr. Marcelo Andrade da Costa Vieira

Filtragem no domínio de frequência

RESTAURAÇÃO E RECONSTRUÇÃO DE IMAGENS. Nielsen Castelo Damasceno

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

Processamento Digital de Imagens

Operações Pontuais. 1 operando. 2 operandos. Processamento e Análise de Imagem - A. J. Padilha - v ac

Tranformada de Fourier II. Guillermo Cámara-Chávez

Tranformada de Fourier. Guillermo Cámara-Chávez

PÓS-GRADUAÇÃO PRESENCIAL MARINGÁ

Processamento de Imagem. Convolução Filtragem no Domínio da Frequência (Fourier) Professora Sheila Cáceres

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

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Processamento digital de imagens

SEL-0339 Introdução à Visão Computacional. Aula 2 Processamento Espacial (Parte 2)

Características Básicas

Introdução ao Processamento Digital de Imagens. Aula 6 Propriedades da Transformada de Fourier

Aula de Processamento de Sinais I.B De Paula. Tipos de sinal:

Filtros espaciais. Processamento e Recuperação de Imagens Médicas. Prof. Luiz Otavio Murta Jr. Depto. De Computação e Matemática (FFCLRP/USP)

T4 Processamento de Imagem

Processamento de Imagens Digitais

PSI2651 PROCESSAMENTO, ANÁLISE E SÍNTESE DE IMAGENS. 1 o período de 2005 LISTA DE EXERCÍCIOS

Processamento de Imagens com MATLAB Carlos Alexandre Mello

Processamento de Imagens com MATLAB

Introdução à Ciência da Computação

Tratamento de Imagens

Processamento Digital de Imagens. Carlos Alexandre Mello

Analisador de espectros por FFT

Sumário Introdução Revisão de Números Complexos Programação em Delphi... 94

T4.1 Processamento de Imagem

Capítulo III Processamento de Imagem

Filtros espaciais (suavizaçào)

Processamento Digital de Sinais:

ESTRUTURA DE UMA IMAGEM E CALIBRAÇÃO RADIOMÉTRICA AULA 01. Daniel C. Zanotta 14/03/2018

Estudando com o MATLAB

Matlab Noções introdutórias. Roteiro para aula

I-3 Introdução ao Matlab

Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo

Minicurso sobre Deconvolução em Imagens

SEL Processamento Digital de Imagens Médicas. Aula 4 Transformada de Fourier. Prof. Dr. Marcelo Andrade da Costa Vieira

Transformada Discreta de Fourier

Transformada de Fourier. Theo Pavan e Adilton Carneiro TAPS

Prof. Responsáveis Wagner Santos C. de Jesus

Filtragem de Imagens no Domínio da Freqüência. 35M34 Sala 3D5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227

Morfologia Matemática. Guillermo Cámara-Chávez

Processamento Digital de Imagens. Prof. Juan M. Mauricio Villanueva

SEL Visão Computacional. Aula 2 Processamento Espacial

Processamento Digital de Imagens

Processamento Digital de Imagens

Processamento digital de imagens

INTRODUÇÃO À COMPUTAÇÃO - EPET006 Aula 3

MATLAB Avançado. Melissa Weber Mendonça

Transformada de Fourier Discreta (DFT)

Processamento de Imagens Médicas

Parâmetros importantes de um Analisador de Espectros: Faixa de frequência. Exatidão (frequência e amplitude) Sensibilidade. Resolução.

STDS - Sistemas de Telecomunicações Definidos por Software & PSTR - Processamento de Sinal em Tempo Real

FILTRAGEM DE IMAGEM NO DOMÍNIO ESPACIAL (Operações aritméticas orientadas à vizinhança)

Plano de Aula - Calc cód Horas/Aula

Exercícios de programação

Introdução ao Processamento de Imagens Digitais Aula 01

O processo de filtragem de sinais pode ser realizado digitalmente, na forma esquematizada pelo diagrama apresentado a seguir:

Restauração de Imagens. Tsang Ing Ren - UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática

Osciloscópio Digital. Diagrama em blocos:

Excel INTERMEDIÁRIO Estatística. Prof. Cassiano Isler Turma 3

Análise de Fourier. Imagens no Domínio da Freqüência

Aula 3 Processamento Espacial

Processamento e Análise de Imagens Médicas

Sistemas lineares. Realce no domínio de freqüências. Propriedades. Sistema: definição. Sistemas harmônicos e análise de sinais complexos

Aula 02 - Introdução ao Scilab (p1)

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Implementação de algoritmo de tratamento de imagens para detecção de falhas em cordão de solda. Rafael Marques Ilivinski

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Restauração de Imagens

Processamento de Imagens Filtragem Digital

Respostas do Estudo Dirigido Cap Image Transform

Transcrição:

Processamento de Imagens Prof. Marcelo Portes de Albuquerque Prof. Márcio Portes de Albuquerque Colaboradores: Clécio R. De Bom (CBPF) André Persechino (CBPF) X Escola do CBPF 2015 X Escola do CBPF - Julho 2015 1

Organização do Curso G14 - Aulas 13 a 24 de Julho Seg. Introdução a Análise de Imagens Ter. Segmentação e Morfologia Matemática Qua. Reconhecimento de Padrões Qui. Laboratório (ImageJ e MATLAB) Sex. Laboratório (MATLAB) Site Web: Notas de Aula: http://mesonpi.cat.cbpf.br/escola2015 X Escola do CBPF - Julho 2015 2

Informações X Escola CBPF A Escola fornecerá certificado de frequência aos alunos inscritos que tiverem assistido no mínimo 8 horas de aula de um determinado curso de graduação, e no mínimo 12 horas, no caso dos cursos de pós-graduação. Além disto, a Escola exige freqüência integral dos estudantes que beneficiam de auxílio financeiro (hospedagem e alimentação), em 2 cursos no caso dos estudantes de graduação e em 3 cursos, dos estudantes de pós-graduação. Pelas duas razões acima, é necessário que os alunos assinem as listas de presença a cada aula. X Escola do CBPF - Julho 2015 3

Tópicos em Processamento de Imagens com MATLAB André Persechino aamerico@cbpf.br X Escola do CBPF - Julho 2015 4

Tópicos em PDI com MATLAB Noções preliminares Entrada de imagens no workspace Manipulação básica das entradas da imagem obtenção de histograma Filtragem FFT e filtragem no domínio das frequências Filtragem no domínio espacial X Escola do CBPF - Julho 2015 5

Noções preliminares X Escola do CBPF - Julho 2015 6

IX Escola do CBPF - Julho 2012 7

Embora seja possível programar no workspace,é preferível sempre usar o editor. X Escola do CBPF - Julho 2015 8

Como boa prática de programação em MATLAB, devemos sempre: Aniquilar quaisquer variáveis existentes; Fechar quaisquer figuras abertas; Limpar o workspace. Aniquila todas as variáveis armazenadas Limpa o workspace Fecha todas as janelas X Escola do CBPF - Julho 2015 9

Para abrir a nossa imagem teste usamos o comando imread(), cujo argumento de entrada é uma string com o nome do arquivo. TAREFA 01: abra o editor, inicie-o com o escopo mostrado e abra a imagem pao_de_acucar.jpg. clear, clc, close all; img = imread('pao_de_acucar.jpg'); X Escola do CBPF - Julho 2015 10

Para exibir a imagem carregada, usamos o comando imshow(): clear, clc, close all; img = imread('pao_de_acucar.jpg'); figure; imshow(img); X Escola do CBPF - Julho 2015 11

Com a imagem no workspace, podemos começar a trabalhar sobre ela. Mas antes de tudo, é preciso conhecê-la... X Escola do CBPF - Julho 2015 12

Queremos responder as seguintes perguntas sobre img: Quais suas dimensões? Qual o intervalo de quantização usado? Qual a forma de seu histograma? X Escola do CBPF - Julho 2015 13

As dimensões espaciais e o intervalo de quantização usado podem ser obtidos por meio do comando whos(), cujo argumento de entrada é uma string com o nome da variável. clear, clc, close all; img = imread('pao_de_acucar.jpg'); figure; imshow(img); % -------- OBTENCAO DAS INFORMACOES BASICAS DA IMAGEM ------------------ info = whos('img'); disp(info); X Escola do CBPF - Julho 2015 14

name: 'img' size: [1456 2592 3] bytes: 11321856 class: 'uint8' global: 0 sparse: 0 complex: 0 nesting: [1x1 struct] persistent: 0 X Escola do CBPF - Julho 2015 15

O acesso às entradas da imagem/matriz ocorrem por meio do operador dois-pontos: img(l i :L f,c i :C f,ch i :Ch f ) OBSERVAÇÃO: Ch f Ch i Para acessar todas as linhas, colunas ou canais, usase : sem definir os extremos do intervalo. Exemplos: L i >> img(:,1:100,1); L f >> img(5:505,:,:); >> img(:,:,:); C i C f X Escola do CBPF - Julho 2015 16

O histograma pode ser visualizado por meio da função imhist(), cujo parâmetro de entrada é a imagem a ser analisada. OBSERVAÇÃO: O histograma deve ser obtido para cada canal da imagem, individualmente. X Escola do CBPF - Julho 2015 17

clear, clc, close all; img = imread('pao_de_acucar.jpg'); figure; imshow(img); % -------- OBTENCAO DAS INFORMACOES BASICAS DA IMAGEM ------------------ info = whos('img'); disp(info); % % -------- OBTENCAO DO HISTOGRAMA DA IMAGEM ---------------------------- figure; subplot(3,1,1) imhist(img(:,:,1)); title('histograma do canal R'); subplot(3,1,2) imhist(img(:,:,2)); title('histograma do canal G'); subplot(3,1,3) imhist(img(:,:,3)); title('histograma do canal B'); X Escola do CBPF - Julho 2015 18

X Escola do CBPF - Julho 2015 19

Filtragem X Escola do CBPF - Julho 2015 20

A base da filtragem no domínio das frequências consiste a obtenção da transformada discreta de Fourier da imagem e do filtro, bem como suas inversas: F k x, k y = M 1 N 1 x=0 y=0 f x, y e 2πj k x M x+ k y N y DFT f x, y = 1 M 1 N 1 F k MN x, k y e 2πj x M k x+ y N k y kx =0 k y =0 IDFT f x, y h x, y F k x, k y H k x, k y Teorema da convolução IX Escola do CBPF - Julho 2012 21

Dinâmica básica da filtragem no domínio das frequências Imagem original filtro DFT DFT X IDFT Imagem filtrada X Escola do CBPF - Julho 2015 22

A DFT de uma imagem pode ser obtida por meio da função fft2(). A IDFT pode ser obtida por meio da função ifft2(). OBSERVAÇÃO: Antes de tomar a fft2 da imagem, é preciso convertêla para o formato double. Isso é feito por meio do comando im2double(). IX Escola do CBPF - Julho 2012 23

TAREFA 02: [1] Inicialize um novo programa chamado estudo_fft.m, em que seja aberta a imagem pao_de_acucar_bw.jpg. Converta-a para o formato double. [2] Obtenha a DFT da imagem. [3] Obtenha a IDFT da DFT da imagem e a exiba na tela. clear, clc, close all; img = img = FT = IFT = imread('pao_de_acucar_bw.jpg'); im2double(img); fft2(img); ifft2(ft); figure; imshow(ift); X Escola do CBPF - Julho 2015 24

Podemos visualizar o espectro de potência da imagem: F k x, k y = R F k x, k y 2 + I F kx, k y 2. Para isso, fazemos uso da função abs(). clear, clc, close all; img = imread('pao_de_acucar_bw.jpg'); img = im2double(img); imshow(log(spec+1),[]); FT = fft2(img); SPEC = abs(ft); figure; imshow(log(spec+1),[]); X Escola do CBPF - Julho 2015 25

OBSERVAÇÃO 1: Para ser exibido de maneira mais perceptível, geralmente mostramos o logaritmo do espectro. OBSERVAÇÃO 2: O que vemos na imagem do espectro corresponde a uma versão não-centralizada dele. Para visualizar o espectro centralizado, usamos a função fftshift() sobre a DFT. X Escola do CBPF - Julho 2015 26

OBSERVAÇÃO 3: O produto entre as DFTs da imagem e do filtro ocorre ponto a ponto. Logo, eles devem ter as mesmas dimensões. Frequentemente usamos o procedimento de zero-padding e completamos os dois sinais com zeros para que tenham as mesmas dimensões. OBSERVAÇÃO 4: Por causa da estrutura do algoritmo fft, é interessante (em termos de performance) que os sinais sejam matrizes quadradas com número de linhas/colunas igual a uma certa potência de 2. X Escola do CBPF - Julho 2015 27

clear, clc, close all; img = img = imread('pao_de_acucar_bw.jpg'); im2double(img); % OBTENCAO DAS DIMENSOES DA IMAGEM s = size(img); % OBTENCAO DA MAIOR DIMENSAO DA IMAGEM DimMax = max(s); % ESTIMATIVA DA MENOR POTENCIA DE 2 MAIOR QUE DimMax M = log2(dimmax); M = 2^ceil(M); % OBTENCAO DAS DFTs E DOS ESPECTROS DE POTENCIA FT = fft2(img,m,m); IFT = ifft2(ft); SPEC_img = abs(fftshift(ft)); figure; imshow(log(spec_img+1),[]); title('espectro da imagem'); figure; imshow(ift,[]); title('idft'); X Escola do CBPF - Julho 2015 28

X Escola do CBPF - Julho 2015 29

TAREFA: [1] Abra a imagem pao_de_acucar_bw.jpg e a converta em double. [2] Construa os filtros diferenciadores h = v = 0 1 0 0 0 0 0 1 0. 0 0 0 1 0 1 0 0 0 e [3] Obtenha os espectros (centralizados) da imagem e dos dois filtros. [4] Realize o produto ponto-a-ponto das DFTs da imagem e dos filtros. [5] Obtenha as IDFTs dos produtos e verifique a ação dos filtros. O que ocorreu? X Escola do CBPF - Julho 2015 30

X Escola do CBPF - Julho 2015 31

X Escola do CBPF - Julho 2015 32

X Escola do CBPF - Julho 2015 33

Os filtros h e v detectam bordas nas duas direções da imagem. Podemos estimar a magnitude do gradiente a imagem, obtendo assim informações sobre suas bordas: f x, y = x f x, y 2 + y f x, y 2 X Escola do CBPF - Julho 2015 34

X Escola do CBPF - Julho 2015 35

clear, clc, close all; img = img = imread('pao_de_acucar_bw.jpg'); im2double(img); % DEFINICAO DOS FILTROS h = [0 0 0;-1 0 1;0 0 0]; v = [0-1 0;0 0 0; 0 1 0]; % OBTENCAO DAS DIMENSOES DA IMAGEM s = size(img); % OBTENCAO DA MAIOR DIMENSAO DA IMAGEM DimMax = max(s); % ESTIMATIVA DA MENOR POTENCIA DE 2 MAIOR QUE DimMax M = log2(dimmax); M = 2^ceil(M); % OBTENCAO DAS DFTs E DOS ESPECTROS DE POTENCIA FT = fft2(img,m,m); FTH = fft2(h,m,m); FTV = fft2(v,m,m); SPEC_img = abs(fftshift(ft)); SPEC_h = abs(fftshift(fth)); SPEC_v = abs(fftshift(ftv)); figure; imshow(log(spec_img+1),[]); title('espectro da imagem'); figure; imshow(log(spec_h+1),[]); title('espectro de h'); figure; imshow(log(spec_v+1),[]); title('espectro de v'); % FILTRAGEM REALIZADA PELO PRODUTO PONTO-A-PONTO DAS TRANSFORMADAS Y_h = FT.*FTH; Y_v = FT.*FTV; y_h = ifft2(y_h); y_h = y_h(1:s(1),1:s(2)); y_v = ifft2(y_v); y_v = y_v(1:s(1),1:s(2)); % ESTIMATIVA DA MAGNITUDE DO GRADIENTE MagGrad = sqrt(y_v.^2+y_h.^2); figure; imshow(y_h); figure; imshow(y_v); figure; imshow(maggrad); X Escola do CBPF - Julho 2015 36

TAREFA: Defina novos filtros e realize o processo de filtragem no domínio das frequências tal como feito nos exemplos anteriores. EXEMPLOS DE FILTROS: Laplaciano: Média aritmética (raio n): L = 0 1 0 1 4 1 0 1 0 M n = 1 n 2 1 1 1 1 n n Gaussiano (raio n e desvio padrão σ): G n = 1 2 2n g ij ; g ij = e i 2 +j 2 2σ 2 ; com i, j n 1 2, n 1 2 X Escola do CBPF - Julho 2015 37

Vários filtros podem ser obtidos por meio do comando fspecial(), cujo argumento de entrada é uma string com o nome do filtro. clear, clc, close all; img = img = imread('pao_de_acucar_bw.jpg'); im2double(img); L = fspecial('laplacian',0); G = fspecial('gaussian',10,1); P = fspecial('prewitt'); S = fspecial('sobel'); X Escola do CBPF - Julho 2015 38

Para filtros lineares, a filtragem da imagem pode ocorrer diretamente sobre o domínio espacial. f x, y h x, y F k x, k y H k x, k y Isso é feito por meio do comando imfilter(), cujos argumentos de entrada são a imagem e o filtro. X Escola do CBPF - Julho 2015 39

clear, clc, close all; img = img = imread('pao_de_acucar_bw.jpg'); im2double(img); G = fspecial('gaussian',50,10); y = imfilter(img,g); figure; imshow(y); title('imagem filtrada'); figure; surf(g); title('representacao do filtro'); X Escola do CBPF - Julho 2015 40

Obviamente, o MATLAB proporciona muito mais recursos em PDI. Há ferramentas para filtragem não-linear, filtros estatísticos, morfologia matemática etc. Aliado a todo esse suporte específico, há uma poderosa linguagem de programação para ambiente científico. X Escola do CBPF - Julho 2015 41

Alguns problemas atacados via PDI por nós no CBPF: Caracterização de amostras geológicas De Bom, C. R. et al. Multiscale matching of micro-ct images using pattern recognition and Hu moments. Notas Técnicas do CBPF. v. 4. n. 1. 2014. Processamento de imagens em hardware e aplicações a sequências de alta frequência de aquisição da Silva, F. S. et al. Desenvolvimento de ferramentas via FPGA para leitura e processamento de imagens em tempo real. Notas Técnicas do CBPF. v. 4. n. 2. 2014. Processamento de imagens mamográficas com vistas à detecção de estruturas suspeitas Persechino, A. et al. Evidenciação de estruturas em imagens por meio de equação de difusão. Notas Técnicas do CBPF. v. 4. n. 2. 2014. X Escola do CBPF - Julho 2015 42

X Escola do CBPF - Julho 2015 43

X Escola do CBPF - Julho 2015 44

Se você tem interesse em trabalhar em nível de IC, mestrado ou doutorado nas áreas de Instrumentação científica em física; Física estatística / teoria da informação; Petrofísica; Imagens médicas, entre em contato conosco. X Escola do CBPF - Julho 2015 45

LPDSI Laboratório de Processamento Digital de Sinais e Imagens lpdsi@cbpf.br Coordenação de Atividades Técnicas CAT Rua Dr. Xavier Sigaud, 150. 3 andar. Ala C. Urca, Rio de Janeiro RJ. CEP: 22290-180 X Escola do CBPF - Julho 2015 46