4.Elaborazione di Immagini
4.1 Individuazione delle necessità
!
4.2 Algoritmi di segmentazione dell’immagine
" #
#
$
%
& !
' "
!
!
!
( ) *
) #
&
#
)
+
#
4.2.1 Operatore Gradiente – I° ordine
* , * ,
!
∂
∂
∂
∂
=
=
∇
y f x f G
f G
y
x
- .
/
# * ,
Livelli di grigio Gradiente Laplaciano
(a) (b)
[ Gx2 G
y2]
1/2
f = +
∇ - 0
1 2 0
!
y
x
G
G
f = +
∇ - 2
" 3 $
4 * , # !
=
−x y
G y G
x , ) tan
1α ( - -
* 5
6 76* 6 76, *
! *
, 1
)
%
8
!
9 :
9 :
9 :
9 :
9 3
9 3
9 3
9 3
'
)
/)
# '
#
4.2.1.1 Operatore di Roberts
+) :
! ;-<= ;.2<=
( i j ) ( ) f i j
f 1 , 1 ,
45
= + + −
∆
°- <
( i j ) ( f i j )
f , 1 1 ,
135
= + − +
∆
°- >
)
$ !
−
− 0 1
0 1 0
1 1 0
#!
y
x
G
G
f ≈ +
∇ - ?
8* 8,
+ !
@
5 #
1 (
A !
%
) " !
"
)
4.2.1.2 Operatore di Prewitt
+) 3 "
2*2 (
B
+ !
y per f x
per f
∂
∂
−
−
∂ −
∂
−
−
−
1 1 1
0 0 0
1 1 1
; 1
0 1
1 0 1
1 0 1
! !"#$ !% #&&
+ )
2*2
) : 0*0
9 *
. 0
% !
/ C !
/ C !
/ C !
/ C ! p
12+ p
22- D
/ 1 !
/ 1 !
/ 1 !
/ 1 !
−2 1 1
tan p
p - E
4.2.1.3 Operatore di Sobel
+) & ) 2*2
3 *
+ !
y per f x
per f
∂
∂
−
−
∂ −
∂
−
−
−
1 2 1
0 0 0
1 2 1
; 1
0 1
2 0 2
1 0 1
! !"# '(!)
9
*
. 0
F !
/ C !
/ C !
/ C !
/ C ! s
12+ s
22- .B
/ 1 !
/ 1 !
/ 1 !
/ 1 !
−2 1 1
tan s
s - ..
)
: 0*0
A
! Robert // prima maschera di Roberts
G0=img[r][c]; [1 0]
G2=img[r+1][c+1]; [0 -1]
//seconda maschera di Roberts G1=img[r][c+1] ; [0 1]
G3=img[r+1][c]; [-1 0]
// calcolo del gradiente e della fase
pixel_Gradiente = sqrt((G2-G0)^2+(G1-G3)^2);
if( pixel_Gradiente > 30 ){
pixel_Fase=atan2((G2-G0),(G1-G3));
pixel_Fase=(pixel_Fase + pi/2)*255/pi;
}
else pixel_Fase=0;
Prewitt // Maschera Verticale
pixel_mv =
(1 * img[r-1][c+1] -1 * img[r-1][c-1]
+ 1 * img[r][c+1] -1 * img[r][c-1]
+ 1 * img[r+1][c+1] -1 * img[r+1][c-1])/3;
// Maschera Orizzontale pixel_mo =
(1 * img[r-1][c+1] + 1 * img[r-1][c-1]
+ 1 * img[r-1][c] - 1 * img[r+1][c]
- 1 * img[r+1][c+1] - 1 * img[r+1][c-1])/3;
// calcolo del gradiente e della fase
pixel_Gradiente = sqrt(pixel_mv^2+pixel_mo^2);
if( pixel_Gradiente > 30 ){
pixel_Fase=atan2(pixel_mv, pixel_mo);
pixel_Fase=(pixel_Fase + pi/2)*255/pi;
}
else pixel_Fase=0;
Sobel
// Maschera Verticale pixel_mv =
(1 * img[r-1][c+1] -1 * img[r-1][c-1]
+ 2 * img[r][c+1] -2 * img[r][c-1]
+ 1 * img[r+1][c+1] -1 * img[r+1][c-1])/4;
// Maschera Orizzontale pixel_mo =
(1 * img[r-1][c+1] + 1 * img[r-1][c-1]
+ 2 * img[r-1][c] - 2 * img[r+1][c]
- 1 * img[r+1][c+1] - 1 * img[r+1][c-1])/4;
// calcolo del gradiente e della fase
pixel_Gradiente = sqrt(pixel_mv^2+pixel_mo^2);
if( pixel_Gradiente > 30){
pixel_Fase=atan2(pixel_mv,pixel_mo);
pixel_Fase=(pixel_Fase + pi/2)*255/pi;
}
else pixel_Fase = 0;
)
G G
* )
% *
)
)
B 0<<
+
H
1 I .
)
+ 0*0 2*2
) *
. *
F
# *
J J
%
* $
.DB
) 2>B
0<> )
4.2.2 Operatore Laplaciano – II° Ordine
+ + 01 f ( y x , )
!
2 2 2 2 2
y f x
f f
∂ + ∂
∂
= ∂
∇ - .0
A - .0
"
2*2 !
(
2 4 6 8)
5
2
f = 4 z − z + z + z + z
∇ - .2
+
+
*
−
−
−
− 0 1 0
1 4 1
0 1 0
* + ) +
A - . +
#
( +
∇
201!
( )
22 2
,
2σy x
e y x h
− +
= - .-
σ 1
2 2
2
x y
r = + +
$ +
2 .B !
2 2
4 2 2
2 2 σ
σ
σ e
rh = r −
−∇ - .<
+ - >
2
h
∇ #
2
h
∇
2
h
∇
2
h
∇
σ σ
, - *
+ - .<
<*<
( 1
G G )
9 )
I - ? #
)
. " /
9 ) #
0 " /
#
) #
I - D
1 2 2 1
2 2
2 12 2
12
2
1 2
1
σ σπσ πσ
y x y
x
e e
Dog
− +
− +
−
= - .>
%
) *
$
4.2.3 - Metodi Template-Matching
2!
4.2.3.1 Operatore Tre su Nove
!
1 & 2 34 0
%
)
!
5 & 2 34 1
!
* K L . <J @ M B 222 - .?
4.2.3.2 Metodo di Kirsch Compass
+ N H
+ !
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
5 5 5
3 0 3
3 3 3 6
3 3 5
3 0 5
3 3 5 4
3 3 3
3 0 3
5 5 5 2
5 3 3
5 0 3
5 3 3 0
k k k k
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
5 5 3
5 0 3
3 3 3 7
3 5 5
3 0 5
3 3 3 5
3 3 3
3 0 5
3 5 5 3
3 3 3
5 0 3
5 5 3 1
k k k k
6
+
+
! OB
O< M
7 M & -
4.2.3.3 Metodo di Robinson Compass
+ :
N " H
B . 0
5 #
#
+ !
−
−
−
−
−
−
−
−
−
−
−
−
1 2 1
0 0 0
1 2 1 6
1 0 1
2 0 2
1 0 1 4
1 2 1
0 0 0
1 2 1 2
1 0 1
2 0 2
1 0 1 0
r r r r
−
−
−
−
−
−
−
−
−
−
−
2 1 0
1 0 1
0 1 2 7
0 1 2
1 0 1
2 1 0 5
2 1 0
1 0 1
0 1 2 3
0 1 2
1 0 1
2 1 0 1
r r r r
+
+
4.2.4 Metodo basato sul colore
+
%
&
#
#
:8P 3
: 8 P
#
& Q R
:8P !
delta B
B delta
B
delta G
G delta
G
delta R
R delta
R
p p
p p
p p
+
≤
≤
−
+
≤
≤
−
+
≤
≤
−
- .D
$
!
2 .<
%
%
% "
!
deltaB B
B deltaB
B
deltaG G
G deltaG
G
deltaR R
R deltaR
R
p p
p p
p p