Click here to Skip to main content
15,922,584 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hi i have project about fingerprint classification with c# and in one part compute angle.
in this part my project give no answer and hang and dont have any action .
to compute angle first compute sobelx and sobely filter and then compute angle with arctan

please help me
C#
// calcute angle***************
public void computeAngle()
{
   
    sobelx();
    sobely();
    angleIMG = new double[imgsx.Width, imgsx.Height];
    try
    {
        for(int i=10 ; i<=200 ; i++)
        {
            for (int j = 10; j <= 150; j++)
            {
                if (Oy(i, j) != 0.0)
                {
                    angleIMG[i, j] = Math.Atan(Ox(i, j) / Oy(i, j)) / 2 + Math.PI / 2;
                    textBox1.Text += Math.Abs(angleIMG[i, j]).ToString();
                }
                else
                {
                    angleIMG[i, j] = 0.0;
                }
            }
              textBox1.Text = "\n";
        }
    }
    catch (Exception e1)
    {
        MessageBox.Show(e1.Message);
    }
//get Ox(i,j)****************
public double Ox(int i, int j)
{
    double wx=0.0;
    for (int u = i - 1; u <= i + 1; u++)
    {
        for (int v = i - 1; v <= i + 1; v++)
        {
            Color cw = imgsx.GetPixel(u, v);
            Color cw1 = imgsy.GetPixel(u, v);
            wx =wx+ 2*( cw.R * cw1.R);
        }
    }
    return wx;
}
//get Oy(i,j)****************
public double Oy(int i, int j)
{
    double wy = 0.0;
    for (int u = i - 1; u <= i + 1; u++)
    {
        for (int v = i - 1; v <= i + 1; v++)
        {
            Color cw=imgsx.GetPixel(u, v);
            Color cw1=imgsy.GetPixel(u, v);
            wy =wy+ Math.Pow (cw.R,2 )- Math.Pow(cw1.R,2);
        }
    }
    return wy;
}
Posted
v2

1 solution

You can't mathematically calculate the angle of the fingerprint from its scan. With just the scan of a print there is no point of reference against which to line the print up.

I've implemented the a number of biometric products and all of them require you to specify a rotation tolerance. They then all rotate the scan within this tolerance range when trying to match the minutia.

This is what can kill the performance of finger print matching, if the reader is positioned in a place which gives the user a wide angle range for placement you have to use a high rotation tolerance which will dramatically increase the matching time.

If you have a stored print against which to match, you can then calculate the angle but precision is important when matching. You're algorithm can't expect a pixel perfect match when working with finger prints.

Again other frameworks require you to specify things like minimum number of minutia to match, minutia float tolerance, print scan quality e.t.c. and then they generate a score for each print based on such values and order by this score.
 
Share this answer
 

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