Click here to Skip to main content
15,886,664 members
Please Sign up or sign in to vote.
4.60/5 (5 votes)
See more:
Hello friends,

I am doing a project of fingerprint matching.
For that I need to find core point.
The method which I have used is poincare index, but I am not getting the output and I dont know the reason.
please help...


C#
Double PIby2=Math.PI/2;
           Double[,] Poincare = new Double[blockW - 1, blockH - 1];
           for (x = 1; x < blockW - 1; x++)
           {
               for (y = 1; y < blockH - 1; y++)
               {
                           Double x1 = thetaD[x, y - 1] - thetaD[x + 1, y - 1];
                           Double x2=thetaD[x - 1, y - 1] - thetaD[x, y - 1];
                           Double x3=thetaD[x - 1, y] - thetaD[x - 1, y - 1];
                           Double x4=thetaD[x - 1, y + 1] - thetaD[x - 1, y];
                           Double x5=thetaD[x, y + 1] - thetaD[x - 1, y + 1];
                           Double x6=thetaD[x + 1, y + 1] - thetaD[x, y + 1];
                           Double x7=thetaD[x + 1, y] - thetaD[x + 1, y + 1];
                           Double x8=thetaD[x + 1, y - 1] - thetaD[x + 1, y];
                   if(x1<PIby2) x1=x1;
                   else if(x1< -PIby2) x1=Math.PI+x1;
                   else x1=Math.PI-x1;
                     if(x2<PIby2) x2=x2;
                   else if(x2<-PIby2) x2=Math.PI+x2;
                   else x2=Math.PI-x2;
                     if(x3<PIby2) x3=x3;
                   else if(x3<-PIby2) x3=Math.PI+x3;
                   else x3=Math.PI-x3;
                     if(x4<PIby2) x4=x4;
                   else if(x4<-PIby2) x4=Math.PI+x4;
                   else x4=Math.PI-x4;
                     if(x5<PIby2) x5=x5;
                   else if(x5<-PIby2) x5=Math.PI+x5;
                   else x5=Math.PI-x5;
                     if(x6<PIby2) x6=x6;
                   else if(x6<-PIby2) x6=Math.PI+x6;
                   else x6=Math.PI-x6;
                     if(x7<PIby2) x7=x7;
                   else if(x7<-PIby2) x7=Math.PI+x7;
                   else x7=Math.PI-x7;
                     if(x8<PIby2) x8=x8;
                   else if(x8<-PIby2) x8=Math.PI+x8;
                   else x8=Math.PI-x8;
                  Poincare[x,y]=Math.Abs((x1+x2+x3+x4+x5+x6+x7+x8)/(2*Math.PI));
               }
           }
           for (x = 1; x < blockW - 1; x++)
           {
               for (y = 1; y < blockH - 1; y++)
               {
                   if (Poincare[x, y] < 0.45 || Poincare[x, y] > 0.51)
                   {
                   }
                   else
                   {

                               image.SetPixel(x , y, Color.Blue);
                       }
                   }
               }
           }
Posted
Updated 12-May-18 2:31am
v2
Comments
Dalek Dave 4-Apr-11 16:37pm    
Edited for Grammar.

Hi,

There is an article about fingerprint recognition on this website:

A Framework in C# for Fingerprint Verification[^]

Maybe it could help you solving your issues.

Valery.
 
Share this answer
 
Comments
Dylan Morley 4-Apr-11 12:09pm    
Comment from OP: thanks valery, but i wanted code for poincare index.... please help!
Noel3090 4-Apr-11 12:10pm    
thanks valery, but i wanted code for poincare index , please help!!
Dalek Dave 4-Apr-11 16:37pm    
Good Links
These pieces of code
C#
if(x1<PIby2) x1=x1;
else if(x1< -PIby2) x1=Math.PI+x1;
else x1=Math.PI-x1;

I suspect you want each angle within +/- PI/2. That would be
C#
if(x1>PIby2) x1=x1-Math.PI;
else if(x1< -PIby2) x1=Math.PI+x1;

Also, it would be better to have an array rather than eight variables so you didn't have to write the same code eight times!

I do not know the Poincaré index but that looks like a mistake and it will invalidate the results.
 
Share this answer
 
Comments
Dalek Dave 4-Apr-11 16:38pm    
Good Answer.
Member 10348471 22-Oct-13 3:32am    
can u help me 2 in finding this core point...????
Noel3090 5-Apr-11 13:49pm    
thanks BobJanova
Member 11115090 9-Mar-15 4:54am    
hi I have the same project and need c# code to find core and delta in fingerprint images. please help me
I search very much and can not find any things my project load image threshold and erode and dilate and grayscale image but i can not find core and delta i cannot compute angle and cannot find arc of image
my project work with aforge.net library in c#
please please please help me for this code

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900