SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
Pág.
Pág.
Processamento de Imagens com MATLAB
Daniel Vieira
Pesquisador Científico
daniel.vieira@opencadd.eng.br
Pág.
Processamento de Imagens com MATLAB
3
• Filtros
 Equalização de Histograma
 Filtro Espacial
 Filtro de Frequência
 Redução de Ruído
Pág.
Processamento de Imagens com MATLAB
4
• Segmentação
 Sistemas de Cores
 Binarização
 Transformações Morfólógicas
 Análise de Objetos
 Detecção de Bordas
• Filtros
 Equalização de Histograma
 Filtro Espacial
 Filtro de Frequência
 Redução de Ruído
Pág.
Processamento de Imagens com MATLAB
5
• Segmentação
 Sistemas de Cores
 Binarização
 Transformações Morfólógicas
 Análise de Objetos
 Detecção de Bordas
• Filtros
 Equalização de Histograma
 Filtro Espacial
 Filtro de Frequência
 Redução de Ruído
• Feature Detection
 Feature Matching
 Transformações Geométricas
 Image Registration
Pág.
Ajuste de Histograma
6
I
Equalização
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág.
Ajuste de Histograma
7
I
Equalização
Pág.
Ajuste de Histograma
8
I
Equalização
Ic=histeq(I);
Ic
Pág.
Ajuste de Histograma
9
Pág.
Ajuste de Histograma
10
Ic=imadjust(I,[],[],gamma);
gamma=0.2
gamma=0.3
gamma=0.4
gamma=0.5
gamma=0.6
Pág. 11
Filtros Espaciais
x
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág. 12
Filtros Espaciais
x
h=fspecial(‘gaussian’,[7 7],1);
y=imfilter(x,h);
y
Pág. 13
Filtros de Frequência
x
y
h=fspecial(‘gaussian’,[7 7],1);
H=fft2(h,size(x,1),size(x,2));
X=fft2(x);
Y=X.*H;
y=ifft2(Y);
HX Y
. =
Pág. 14
Filtros Otimizados para Redução de Ruído
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág. 15
Filtros Otimizados para Redução de Ruído
y=wiener2(x,[7 7],noise);
Pág. 16
Sistemas de Cores
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág. 17
Sistemas de Cores
y=rbg2hsv(x);
x=hsv2rgb(y);
y=rbg2lab(x);
x=lab2rgb(y);
y=rbg2ycbcr(x);
x=ycbcr2rgb(y);
Pág. 18
Segmentação
x
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág.
Segmentação
19
Pág.
Segmentação
20
Pág.
Segmentação
21
Pág. 22
Segmentação
x
Fruit=Orange(x);
Bucket=blueBucket(x);
Ball=whiteBall(x);
Mask=logical(Fruit+Ball+Bucket);
Mask
Pág. 23
Segmentação
x
Fruit=Orange(x);
Bucket=blueBucket(x);
Ball=whiteBall(x);
Mask=logical(Fruit+Ball+Bucket);
S=strel('disk',2);
Mask=imclose(Mask,S);
Mask=bwareaopen(Mask,500);
Mask=imfill(Mask,'holes');
Mask Mask
Pág. 24
Segmentação
x
Fruit=Orange(x);
Bucket=blueBucket(x);
Ball=whiteBall(x);
Mask=logical(Fruit+Ball+Bucket);
S=strel('disk',2);
Mask=imclose(Mask,S);
Mask=bwareaopen(Mask,500);
Mask=imfill(Mask,'holes');
Mask
Mask.*x
Pág. 25
Segmentação: Detecção e Análise de Objetos
I
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág. 26
Segmentação: Detecção e Análise de Objetos
S=strel('disk',20);
Icorr=imtophat(I,S);
Icorr
Pág. 27
Segmentação: Detecção e Análise de Objetos
S=strel('disk',20);
Icorr=imtophat(I,S);
bw=bwareaopen(imbinarize(Icorr),25);
bw
Pág. 28
Segmentação: Detecção e Análise de Objetos
S=strel('disk',20);
Icorr=imtophat(I,S);
bw=bwareaopen(imbinarize(Icorr),25);
labeled=bwlabel(bw,4);
labeled
Pág. 29
Segmentação: Detecção e Análise de Objetos
labeled=bwlabel(bw,4);
area center
138 6,0 35,1
121 6,4 62,1
68 2,1 85,1
179 4,6 117,6
157 9,5 141,3
89 4,0 179,1
197 12,1 205,3
134 9,5 223,0
198 15,3 163,7
177 21,3 95,9
208 24,2 26,3
... ...
blobs=vision.BlobAnalysis('ExcludeBorderBlobs',false,...
'Connectivity',4,'MaximumCount',numel(bw));
[area,center,bbox]=blobs(bw);
S=strel('disk',20);
Icorr=imtophat(I,S);
bw=bwareaopen(imbinarize(Icorr),25);
Pág. 30
Segmentação: Detecção e Análise de Objetos
x
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág. 31
Segmentação: Detecção e Análise de Objetos
x=x(:,:,1);
x=x./max(x(:));
Pág. 32
Segmentação: Detecção e Análise de Objetos
x=x(:,:,1);
x=x./max(x(:));
[centers,radii,metric]=imfindcircles(x,[3 12]);
metric=metric./max(metric);
figure, imshow(x,[]);
hold on
for k=1:length(metric)
viscircles(centers(k,:),radii(k),'Color',hsv2rgb([metric(k) 1 1]));
end
centers radii metric
52,0 126,0 9,1 1,00
72,3 59,9 8,9 0,96
192,9 111,8 9,1 0,91
244,4 181,5 9,7 0,90
90,1 327,3 11,4 0,80
255,5 129,1 8,3 0,79
180,1 289,1 7,4 0,78
19,0 363,8 6,2 0,77
48,5 234,4 7,8 0,76
172,5 198,7 3,2 0,76
115,6 38,6 7,7 0,76
... ... ...
Pág.
Segmentação: Detecção e Análise de Objetos
33
Exemplo Real: LR115 - Detector de Radônio
• Gás Nobre - não reage com nada
• Pesado - se acumula em interiores mal arejados (minas, porões, etc)
• Emitido por material de construção, atividade sísmica, etc
• Decai em muitos outros elementos - também radioativos!
Radioativo!
Pág.
Segmentação: Detecção e Análise de Objetos
34
Exemplo Real: LR115 - Detector de Radônio
Membrana Papel Filtro
LR-115 LR-115
Copo Copo
Pág.
Segmentação: Detecção e Análise de Objetos
35
Exemplo Real: LR115 - Detector de Radônio
Fonte da Imagem: http://ssntd.weebly.com/uploads/5/0/6/5/506532/5502226.jpg?282
Pág.
Segmentação: Detecção e Análise de Objetos
36
Exemplo Real: LR115 - Detector de Radônio
x=im2double(imread('lr115.jpg'));
mask=lrTracks(x); %Color Thresholder
blobs=vision.BlobAnalysis('MaximumCount',numel(mask),...
'MajorAxisLengthOutputPort',true,...
'MinorAxisLengthOutputPort',true,...
'OrientationOutputPort',true);
[area,center,~,major,minor,orien]=blobs(mask);
Pág. 37
Segmentação: Detecção de Bordas
x
Fonte da Imagem: C:Program FilesMATLABR2017atoolboximagesimdata
Pág. 38
Segmentação: Detecção de Bordas
x
y=edge(x,’Canny’);
y
Pág. 39
Segmentação: Detecção de Bordas
x
[centers,radii,metric]=imfindcircles(y,[50 200], ...
'ObjectPolarity','dark','Sensitivity',0.95);
viscircles(centers,radii,'Color','red');
y=edge(x,’Canny’);
y
Pág. 40
Feature Detection
Pág. 41
Feature Detection
featMSER=detectMSERFeatures(x,...);
featSURF=detectSURFFeatures(x,...);
featFAST=detectFASTFeatures(x,...);
featBRISK=detectBRISKFeatures(x,...);
Pág. 42
Image Registration y
x
featX=detectMSERFeatures(x);
featY=detectMSERFeatures(y);
Pág. 43
Image Registration: Transformações Geométricas
descX=extractFeatures(x,featX);
descY=extractFeatures(y,featY);
matchedXY=matchFeatures(descX,descY);
T=estimateGeometricTransform(featX(matchedXY(:,1)),...
featY(matchedXY(:,2)),'affine');
=
0.86 −0.50 0
0.50 0.86 0
−61.6 154.6 1
Pág. 44
ref=imref2d(size(x));
R=imwarp(y,invert(T),'OutputView',ref);
Image Registration: Transformações Geométricas
=
0.86 −0.50 0
0.50 0.86 0
−61.6 154.6 1
Pág.
Feature Detection
45
Exemplo Real: Missão Juno
Fonte da Imagem: https://www.missionjuno.swri.edu/junocam/processing
Pág.
Feature Detection
46
Exemplo Real: Missão Juno
lowIn=[0.2 0.24 0.28];
highIn=[0.67 0.62 0.62];
y=zeros(size(x));
for k=1:3
y(:,:,k)=imadjust(x(:,:,k),...
[lowIn(k);highIn(k)],[0;1]);
end
y=imsharpen(y,'Radius',3);
Pág.
Feature Detection
47
Exemplo Real: Missão Juno
lowIn=[0.2 0.24 0.28];
highIn=[0.67 0.62 0.62];
y=zeros(size(x));
for k=1:3
y(:,:,k)=imadjust(x(:,:,k),...
[lowIn(k);highIn(k)],[0;1]);
end
y=imsharpen(y,'Radius',3);
feat=detectMSERFeatures(rgb2gray(y),...
'ThresholdDelta',1.0,...
'MaxAreaVariation',0.15,...
'RegionAreaRange',[100 8000]);
Pág.
Feature Detection
48
Exemplo Real: Missão Juno
Fonte da Imagem: https://www.missionjuno.swri.edu/junocam/processing
xLab=rgb2lab(x);
colors=reshape(xLab(:,:,2:3),numel(xLab(:,:,1)),2);
inds=kmeans(colors,2);
xSeg=reshape(inds,size(xLab(:,:,1),1),size(xLab(:,:,1),2));
xSeg=logical(xSeg-1);
xSeg=bwareaopen(imfill(bwmorph(xSeg,'bridge'),'holes'),800);
xCol1=x.*xSeg;
xCol2=x.*(~xSeg);
Pág.
Feature Detection
49
Exemplo Real: Missão Juno
Pág.
Feature Detection
50
Exemplo Real: Missão Juno
feat1=detectMSERFeatures(rgb2gray(xCol1),...);
feat2=detectMSERFeatures(rgb2gray(xCol2),...);
Pág.
Feature Detection
51
Exemplo Real: Missão Juno
feat1(10)
ans =
MSERRegions with properties:
Count: 1
Location: [10.9130 7.9051]
Axes: [22.5362 15.2954]
Orientation: 0.2455
PixelList: {[253×2 int32]}
Pág.
Finalização
52
 Faciliade
 Versatilidade
 Liberdade de Experimentação
Pág.
Dúvidas?
53
Pág.
OBRIGADO!
DANIEL.VIEIRA@OPENCADD.ENG.BR
AV. BRIGADEIRO FARIA LIMA, 1931, CJ 152
JARDIM PAULISTANO
SÃO PAULO / SP

Mais conteúdo relacionado

Mais de Opencadd Advanced Technology

Mais de Opencadd Advanced Technology (20)

INOVADEF - Apresentação Sender Rocha
INOVADEF - Apresentação Sender RochaINOVADEF - Apresentação Sender Rocha
INOVADEF - Apresentação Sender Rocha
 
Apresentação Allyson Chiarini
Apresentação Allyson ChiariniApresentação Allyson Chiarini
Apresentação Allyson Chiarini
 
Apresentação Osvaldo Maia
Apresentação Osvaldo MaiaApresentação Osvaldo Maia
Apresentação Osvaldo Maia
 
Indústria 4.0 - Vantagens e Impactos para a sociedade. Fabiana Tarabal
Indústria 4.0 - Vantagens e Impactos para a sociedade. Fabiana TarabalIndústria 4.0 - Vantagens e Impactos para a sociedade. Fabiana Tarabal
Indústria 4.0 - Vantagens e Impactos para a sociedade. Fabiana Tarabal
 
Licenciamento math works
Licenciamento math worksLicenciamento math works
Licenciamento math works
 
Webinar Classificação Images com MATLAB
Webinar Classificação Images com MATLABWebinar Classificação Images com MATLAB
Webinar Classificação Images com MATLAB
 
Webinar Novidades da Release R2017b
Webinar Novidades da Release R2017bWebinar Novidades da Release R2017b
Webinar Novidades da Release R2017b
 
Desenvolvimento de software autônomo para determinação e controle de órbita e...
Desenvolvimento de software autônomo para determinação e controle de órbita e...Desenvolvimento de software autônomo para determinação e controle de órbita e...
Desenvolvimento de software autônomo para determinação e controle de órbita e...
 
Simulação e desenvolvimento de algoritmos de tempo real usando Matlab/Simulin...
Simulação e desenvolvimento de algoritmos de tempo real usando Matlab/Simulin...Simulação e desenvolvimento de algoritmos de tempo real usando Matlab/Simulin...
Simulação e desenvolvimento de algoritmos de tempo real usando Matlab/Simulin...
 
Breve histórico da engenharia de sistemas no Brasil e as Iniciativas atuais d...
Breve histórico da engenharia de sistemas no Brasil e as Iniciativas atuais d...Breve histórico da engenharia de sistemas no Brasil e as Iniciativas atuais d...
Breve histórico da engenharia de sistemas no Brasil e as Iniciativas atuais d...
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
 
Visão Computacional
Visão ComputacionalVisão Computacional
Visão Computacional
 
Webinar SDR
Webinar SDRWebinar SDR
Webinar SDR
 
O casamento do século: internet das coisas e lean manufactoring (Wanderley do...
O casamento do século: internet das coisas e lean manufactoring (Wanderley do...O casamento do século: internet das coisas e lean manufactoring (Wanderley do...
O casamento do século: internet das coisas e lean manufactoring (Wanderley do...
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
 
Mercado Financeiro (Pedro Washington -CNH)OPENDAY-PUC-Rio
Mercado Financeiro  (Pedro Washington -CNH)OPENDAY-PUC-RioMercado Financeiro  (Pedro Washington -CNH)OPENDAY-PUC-Rio
Mercado Financeiro (Pedro Washington -CNH)OPENDAY-PUC-Rio
 
Estudo de Caso- Dinâmicas de Veículos e Sistemas (Mauro Speranza Neto) OPENDA...
Estudo de Caso- Dinâmicas de Veículos e Sistemas (Mauro Speranza Neto) OPENDA...Estudo de Caso- Dinâmicas de Veículos e Sistemas (Mauro Speranza Neto) OPENDA...
Estudo de Caso- Dinâmicas de Veículos e Sistemas (Mauro Speranza Neto) OPENDA...
 
Apresentação Prof. Luis Fernando Martha e Rafael Rangel
Apresentação Prof. Luis Fernando Martha e Rafael Rangel Apresentação Prof. Luis Fernando Martha e Rafael Rangel
Apresentação Prof. Luis Fernando Martha e Rafael Rangel
 
Analise vibratória de conjuntos de bombeiro submerso de petróleo em poços de ...
Analise vibratória de conjuntos de bombeiro submerso de petróleo em poços de ...Analise vibratória de conjuntos de bombeiro submerso de petróleo em poços de ...
Analise vibratória de conjuntos de bombeiro submerso de petróleo em poços de ...
 
Geração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIO
Geração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIOGeração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIO
Geração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIO
 

Webinar image processing daniel vieira