Top Banner
Carlos Alexandre Mello – [email protected] 1 Processamento de Imagens com MATLAB Carlos Alexandre Mello
52

PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Nov 07, 2018

Download

Documents

phamnguyet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 1

Processamento de Imagenscom MATLAB

Carlos Alexandre Mello

Page 2: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 2

Processamento de Imagenscom MatLab

Toolboxes– Image Processing

– Diretório: toolbox/images/images

Page 3: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 3

Processamento de Imagenscom MatLab

Comando imshow():– Visualização de imagens

– Uso: imshow(nome_do_arquivo)

– Exemplo: imshow(‘eight.tif’)

Page 4: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 4

Processamento de Imagenscom MatLab

E/S de arquivos de imagem– imread

Lê um arquivo de imagem

Uso:– A = imread(filename)

Exemplo:– A = imread(‘eight.tif’)

Page 5: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 5

Processamento de Imagenscom MatLab

E/S de arquivos de imagem– Leitura de Imagem BMP

[A, MAP] = imread (‘nome.bmp’)

– Para imagens coloridas: A = imread (‘nome.bmp’);

– Gera uma matriz mxnx3 (onde 3 é a quantidade de planos)

R = A(:, :, 1); % Matriz de tons vermelhos

G = A(:, :, 2); % Matriz de tons verdes

B = A(:, :, 3); % Matriz de tons azuis

Page 6: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 6

Processamento de Imagenscom MatLab

E/S de arquivos de imagem– imwrite

Escreve uma imagem para um arquivo gráfico

Uso:– imwrite(A, filename, FMT)

FMT = formato

Exemplo:– imwrite(A, ‘eight’, ‘tif’)

Page 7: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 7

Processamento de Imagenscom MatLab

Visualização– image

Mostra uma matriz C como uma imagem Uso:

– image(C)

Exemplo:– >> A= imread(‘eight’, ‘tif’);– >> image(A)

Se não especificada, é usada a paleta de cores default

Page 8: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 8

Processamento de Imagenscom MatLab

Visualização– imzoom

Zoom in ou out em uma imagem Uso:

– imzoom(fator)

Exemplo:– >> imshow(‘eight.tif’)– >> imzoom(2)

Page 9: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 9

Processamento de Imagenscom MatLab

Conversão entre Tipos– dither

Dithering de uma imagem pelo método de Floyd-Steinberg Uso:

– X = dither(RGB, MAP) RGB = Imagem original MAP = Paleta de cores final

Exemplo:[A,MAP] = tiffread(‘flowers.tif’);X = dither(A);imshow(X);

Page 10: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 10

Processamento de Imagenscom MatLab

Conversão entre Tipos– im2bw

Converte uma imagem para preto-e-branco Uso:

– BW = im2bw(X, MAP, level) X = Imagem original MAP = Paleta de cores da imagem original level = Valor de corte (threshold): 0 level 1

Exemplo:[A,MAP] = tiffread(‘eight.tif’);bw = im2bw(A,MAP,0.4);imshow(bw);

Page 11: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 11

Processamento de Imagenscom MatLab

Conversão entre Tipos– rgb2gray

Converte uma imagem RGB para uma imagem em tons de cinza

Uso:– I = rgb2gray(RGB)

RGB = imagem original true color

Exemplo:A = imread(‘flowers.tif’);I = rgb2gray(A);imshow(I);

Page 12: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 12

Processamento de Imagenscom MatLab

Conversão entre Tipos– rgb2ind

Converte uma imagem RGB para uma imagem em indexada

Uso:– [X, NEWMAP] = rgb2ind(RGB)

NEWMAP = paleta de cores final

Page 13: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 13

Processamento de Imagenscom MatLab

Tipos de Imagens– isbw

Verdadeiro para imagens B&W

– isgray Verdadeiro para imagens em tons de cinza

– isind Verdadeiro para imagens indexadas

Page 14: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 14

Processamento de Imagenscom MatLab

Operações Geométricas– imresize

Altera o tamanho de uma imagem Uso:

– B = imresize(A, M, ‘method’)– Retorna uma matriz que é M vezes maior (ou menor) que a

imagem A– ‘method’ =

nearest = vizinho mais próximo bilinear = interpolação bilinear bicubic = interpolação bicúbica

Page 15: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 15

Processamento de Imagenscom MatLab

Operações Geométricas– imresize

Exemplo:– >> A = imread(‘eight’, ‘tif’);– >> B = imresize (A, 0.5, ‘nearest’);– >> imshow(B)

Page 16: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 16

Processamento de Imagenscom MatLab

Operações Geométricas– imrotate

Rotaciona uma imagem Uso:

– B = imrotate(A, Ângulo, ‘method’);– Method = nearest, bilinear ou bicubic

Exemplo:– >> A = imread (‘eight’, ‘tif’);– >> B = imrotate (A, 45, ‘nearest’);– >> imshow(B)

Page 17: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 17

Processamento de Imagenscom MatLab

Valores de Pixels e Estatísticas– imhist

Histograma de uma imagem– Uso:

imhist(A): histograma de 256 cores imhist(A, N): histograma de N cores

Page 18: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 18

Processamento de Imagenscom MatLab

Valores de Pixels e Estatísticas– mean2

Média de uma matriz– Uso:

mean2(A)

– std2 Desvio padrão bidimensional

– Uso: std2(A)

Page 19: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 19

Processamento de Imagenscom MatLab

Realce de imagem– histeq

Equalização de Histograma– imadjust

Especificação de histograma (atribui o histograma de uma imagem A a outra imagem B)

– imnoise Adiciona ruído a uma imagem O ruído pode ser gaussiano, salt & pepper ou speckle Exemplo: J = imnoise(A, ‘gaussian’);

Page 20: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 20

Processamento de Imagenscom MatLab

Filtragem– filter2

Filtro digital 2D Uso:

– filter2(B,X) - Filtra a imagem X usando o filtro FIR definido pela matriz B

Page 21: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 21

Processamento de Imagenscom MatLab

Filtragem– filter2

Exemplo: >> I=imread(‘rice.tif’); >> imshow(I);

» h=[1 2 1; 0 0 0; -1 -2 -1];

» I2=filter2(h,I); % double

» imshow(I2);

» imshow(I2, []);

» imshow(uint8(I2));

Page 22: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 22

Processamento de Imagenscom MatLab

Filtragem– imfilter

» h=[1 2 1; 0 0 0; -1 -2 -1];

» I2=imfilter(I, h); % uint8

» imshow(I2);

Page 23: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 23

Processamento de Imagenscom MatLab

Filtragem– fspecial

Cria um filtro 2D de um tipo específico– gaussian– sobel– prewitt– laplacian– log– average– unsharp

Page 24: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 24

Processamento de Imagenscom MatLab

Filtragem– fspecial

Exemplo:» h=fspecial(‘laplacian’);

» I2=imfilter(I, h);

» imshow(I2)

Page 25: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 25

Processamento de Imagenscom MatLab

Filtragem– fspecial

Exemplo:» h=fspecial(‘sobel’);

» I2=filter2(h,I));

» imshow(I2)

Page 26: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 26

Processamento de Imagenscom MatLab

Filtragem linear– conv2

Convolução bidimensional

– convmtx2 Matriz de convolução bidimensional

– convn Convolução n-dimensional

Page 27: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 27

Processamento de Imagenscom MatLab

Transformação de Imagens– dct2

Transformada bidimensional discreta do cosseno– B = dct2(A)

– fft2 FFT bidimensional

– B = fft2(A)

– fftn FFT n-dimensional

– B = fftn(A)

Page 28: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 28

Processamento de Imagenscom MatLab

FFT2– Exemplo:

» f=zeros(100,100);

» f(5:94,40:60)=1;

» imshow(f)

Page 29: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 29

Processamento de Imagenscom MatLab

FFT2– Exemplo:

» F=fft2(f);

» F2=log(abs(F));

» imshow(F2,[-1 5]);

» colormap(jet);colorbar

Page 30: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 30

Processamento de Imagenscom MatLab

FFT2– Exemplo:

» F=fft2(f,256,256);

» F2 = fftshift(F);

» imshow(log(abs(F2)),[-1 5]);

» colormap(jet); colorbar;

Page 31: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 31

Processamento de Imagenscom MatLab

Transformação de Imagens– idct2– ifft2– ifftn

Transformadas inversas

Page 32: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 32

Análise de Imagem– Edge:

Extração de bordas

Uso: – BW = edge(A, ‘method’);

Exemplo:– A = imread(‘rice’, ‘tif’);

– BW = edge (A, ‘sobel’);

– imshow(BW);

Processamento de Imagenscom MatLab

method =

sobelrobertsprewitt

logzerocross

Page 33: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 33

Operações com Imagens Binárias– bwmorph

Aplica uma operação morfológica em imagens binárias

Uso:– bw2 = bwmorph(bw1, operação)

– Operação = clean dilate erode .....

Processamento de Imagenscom MatLab

Page 34: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 34

Operações com Imagens Binárias– imdilate

Dilata uma imagem binária– Uso:

bw2 = imdilate(bw1, SE);

onde SE é uma matriz contendo apenas 0’s e 1’s

Processamento de Imagenscom MatLab

Page 35: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 35

Operações com Imagens Binárias– imerode

Erosão de uma imagem binária– Uso:

bw2 = imerode (bw1, SE)

SE é uma matriz de 0’s e 1’s

Processamento de Imagenscom MatLab

Page 36: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 36

Processamento de Imagenscom MatLab

Manipulação de Paleta de Cores– brighten

Clareia ou escurece uma paleta de cores Uso:

– brighten(BETA)– Se 0 < BETA < 1: A paleta é clareada– Se -1 BETA < 0: A paleta escurece

Page 37: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 37

Processamento de Imagenscom MatLab

Imagens carregadas no formato uint8 É preciso convertê-lo para outro formato para

algumas operações Operações com imagens

– Dadas duas imagens com as mesmas dimensões:A = imread (‘imagem1’, ‘ext’);B = imread (‘imagem2’, ‘ext’);C = uint8(double(A) + double(B));imshow (C);

Page 38: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 38

Transformada de Fourier

function img_fourier (nome, ext)nome_in = [nome '.' ext];im = imread(nome_in);figure, imshow (im);F = fft2(im);figure;F2 = fftshift(F);imshow(log(abs(F2)), []);colormap (jet);

nx = size(F, 2);ny = size(F, 1);cxrange = [0:nx/2, -nx/2+1:-1];cyrange = [0:ny/2, -ny/2+1:-1];[cx, cy] = meshgrid(cxrange, cyrange);

fxrange = cxrange * 2*pi/nx;fyrange = cyrange * 2*pi/ny;[fx, fy] = meshgrid(fxrange, fyrange);

sigma = 0.3; % Gaussianams = exp(-(fx.^2 + fy.^2)/(2*sigma^2));%figure; imshow(log(ms), []);

smoothF = F.* ms;smooth = ifft2(smoothF);figure, imshow(smooth, []);

ftd = F.*fx.*i; % Diferenciacaoftd(:, nx/2+1) = 0;d = ifft2(ftd);figure, imshow(d, []);

Page 39: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 39

Transformada de Fourier

Page 40: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 40

Transformada de Fourier

Page 41: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 41

Transformada de Fourier

Page 42: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 42

Transformada de Fourier

Page 43: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 43

Transformada de Fourier

Page 44: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 44

Transformada de Fourier

Page 45: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 45

Transformada de Fourier

Page 46: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 46

Transformada de Fourier

Page 47: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 47

Transformada de Fourier

Inversa:

>> F = img_fourier ('lena','bmp');>> c = find (real(F) < 0);>> F(c) = 0;>> im2 = ifft2(F);>> figure, imshow (uint8(im2))

Page 48: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 48

Transformada de Fourier

Imagem original

Page 49: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 49

Transformada de Fourier

Espectro

Page 50: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 50

Transformada de Fourier

Imagem reconstruída (inversa de Fourier)

Page 51: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 51

Transformada de Fourier

Imagem “filtrada” e reconstruída pelo código anterior

Page 52: PDS Aula09 MatLab.ppt [Modo de Compatibilidade]cabm/pds/PDS_Aula09_MatLab.pdf · &duorv $oh[dqguh 0hoor ±fdep#flq xish eu 3urfhvvdphqwr gh ,pdjhqv frp 0dw/de &rpdqgr lpvkrz ±9lvxdol]domr

Carlos Alexandre Mello – [email protected] 52

Referências

Digital Image Processing, Gonzalez e Woods

Análise de Imagens Digitais, Pedrini

Handbook on Image Processing, Russ

Imagem “filtrada” e reconstruída pelo código anterior