Image Processing Reference
In-Depth Information
Fig. 5.6 Three different kernels
value beneath f( 2 , 1 ) , etc. The final value which will be written into the output
image as g( 2 , 2 ) is found as
g( 2 , 2 )
=
h(
1 ,
1 )
·
f( 1 , 1 )
+
h( 0 ,
1 )
·
f( 2 , 1 )
+
h( 1 ,
1 )
·
f( 3 , 1 )
+
h(
1 , 0 )
·
f( 1 , 2 )
+
h( 0 , 0 )
·
f( 2 , 2 )
+
h( 1 , 0 )
·
f( 3 , 2 )
+ h(
1 , 1 ) · f( 1 , 3 ) + h( 0 , 1 ) · f( 2 , 3 ) + h( 1 , 1 ) · f( 3 , 3 )
(5.3)
The principle is illustrated in Fig. 5.7 . We say that we correlate the input image
f(x,y) with the kernel h(x,y) and the result is g(x,y) . Mathematically this is
expressed as g(x,y)
=
f(x,y)
h(x,y) and written as
R
R
g(x,y) =
h(i, j) · f(x + i, y + j)
(5.4)
j
=−
R
i
=−
R
where R is the radius of the kernel. 3 Below, a C-code example of how to implement
correlation is shown:
for
(y =
Radius ;
y <
(M
Radius );
y = y +
1)
{
for
(x =
Radius ;
x <
(N
Radius );
x = x +
1)
{
temp
=
0;
for
(j =
Radius ;
j
<
( Radius
+
1);
j
=
j
+
1)
{
for
(i =
Radius ;
i
<
( Radius +1);
i
=
i
+
1)
{
temp
=
temp
+ h ( i , j )
GetPixel ( input , x+i , y+j );
}
3 The reader is encouraged to play around with this equation in order to fully comprehend it.
Search WWH ::




Custom Search