fingeraftryk forbedring af Gábor filtrering hjælp orientering

R

R @ vinder

Guest
hej allesammen,

IAM gennemførelse af papir "fingeraftryk forbedring og bagateller udtræk" af Raymond Thai.jeg gjort for kodning, men IAM ikke få resultaterne korrekt.Jeg kontrollerede det, men IAM ude af stand til at finde fejlen.Faktisk er den orientering, bør være i radianer eller grader?
hvad er det sortiment -90 til 90 eller 0 til 180?

Faktisk burde jeg færdiggøre mit projekt ved 15 juni.Jeg har ikke tid nok.hvis nogen har gjort lignende arbejde, kunne u behage sende mig den kode, selv det er på alle sprog (C, VC , matalb osv.), vil jeg henvise det.

Her IAM sende koden, kan enhver, der gøres lignende projekt, kan du tjekke it.i vedlagt mit udskriftsbillede.

mit id: ravinderreddy_o (at) yahoo.co.in
please help me.venter nemlig ur svar.

/ / gradiant beregning
# define W2 16
# define pi (22.0/7.0)
float Dx [512] [512], Dy [512] [512], vx [512] [512], Vy [512] [512];
float theta [512] [512], grdori [512] [512];
int Sx [3] [3] = ((-1, 0, 1),
(-2, 0, 2),
(-1, 0, 1)
);
int Sy [3] [3] = ((-1, -2, -1),
(0, 0, 0),
(1, 2, 1)
);
for (i = 0; i <512; i )
(
for (j = 0; j <512; j )
(

if ((i <1) | | (i> = 511) | | (j <1) | | (j> = 511))
(
Dx [j] = img [j];
Dy [j] = img [j];
)
anden
(
sumx = 0.0;
Sumy = 0.0;
for (u =- 1 u <= 1 u )
(
for (v =- 1; v <= 1; v )
(
sumx = sumx Sx [u 1] [v 1] * img [i u] [j v];
Sumy = Sumy Sy [u 1] [v 1] * img [i u] [j v];
)
)
Dx [j] = sumx;
Dy [j] = Sumy;

)
)
)

/ / orientering beregning

for (i = 0; i <512; i )
(
for (j = 0; j <512; j )
(
Vx [j] = 0.0;
Vy [j] = 0.0;
for (u = i-W2 / 2 u <i W2 / 2 u )
(
for (v = j-W2 / 2 v <j W2 / 2 v )
(

if ((u> = 0) & & (u <= 511) & & (v> = 0) & & (v <= 511))
(
Vx [j] = vx [j] 2 * Dx [v] * Dy [v];
Vy [j] = Vy [j] (Dx [v] * Dx [v]-Dy [v] * Dy [v]);

)
)

)

theta [j] = 1/2.0 * ATAN2 (Vy [j], vx [j]);
orimg [j] = theta [j] * (180.0/pi);
/ / Direkte konstatering højderyg orientering. ATAN2 giver output i radianer, IAM konvertering til grader.det er i intervallet-pi / 2 til pi / 2

(eller) kan vi skrive som

theta [j] = pi / 2 1 / 2,0 * ATAN2 (Vx [j], Vy [j]);
/ / Første gradiant vinkel beregnes, og dernæst tilføje pi / 2 giver højderyg orientering her er det i intervallet 0 til piorimg [j] = theta [j] * (180.0/pi); / / konvertering til grader
)
)/ / Gabor filtrering

void filter (Billede <byte> & img, Image <FLOAT> & orimg, Image <FLOAT> & filtimg)
(
printf ( "start-filtrering \ n");
float Gabor [11] [11];
float x_theta, y_theta, temp1, temp2, theta;
int i, j, u, v, w, k, val = 0, temp3;
float sigmax, sigmay;

for (i = 0; i <512; i )
(
for (j = 0; j <512; j )
(
theta = orimg [j];
w = 11;
sigmax = 4.0;
sigmay = 4.0;

if ((i <w/2)||(i> = 512-w / 2) | | (j <w/2)||(j> = 512-w / 2))
(
filtimg [j] = 255;
)
anden
(
for (u =- w / 2 u <= w / 2 u )
(
for (v =- w / 2 v <= w / 2 v )
(
x_theta = u * cos (theta) v * sin (theta);
y_theta = (-u) * sin (theta) v * cos (theta);

temp1 = (-0,5 )*((( x_theta * x_theta) / (sigmax * sigmax )) (( y_theta * y_theta) / (sigmay * sigmay)));

Gabor [u w / 2] [v w / 2] = exp (temp1) * cos (2,0 * pi * 0,1 * x_theta);)
)val = 0;
temp2 = 0.0;
for (u =- w / 2 u <= w / 2 u )
(
for (v =- w / 2 v <= w / 2 v )
(

if (Gabor [u w / 2] [v w / 2]> 0,05 | | Gabor [u w / 2] [v w / 2] <-0,05)
(
temp2 = temp2 Gabor [u w / 2] [v w / 2] * img [i u] [j v];
val = val Gabor [u w / 2] [v w / 2];
)

)
)temp2 = temp2/val;
if (temp2> 255)
temp2 = 255;
else if (temp2 <0)
temp2 = 0;

filtimg [j] = temp2;
)

)
)

printf ( "end filtrering \ n");
)du kontrollere det.

 

Welcome to EDABoard.com

Sponsor

Back
Top