c#中的指纹检测角度 [英] angle of fingerprint detection in c#

查看:97
本文介绍了c#中的指纹检测角度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于指纹分类的项目,用c#和一部分计算角度。

这个部分我的项目没有答案,挂起,没有任何动作。

计算角度首先计算sobelx和sobely过滤器然后用arctan计算角度



请帮帮我

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

// 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;
}

推荐答案

您无法以数学方式计算指纹扫描的角度。只需扫描打印件就没有参考点可以打印出来。



我已经实现了许多生物识别产品和所有它们要求您指定旋转公差。然后,当他们尝试匹配细节时,他们都会在此公差范围内旋转扫描。



如果读取器被定位,这可能会破坏指纹匹配的性能在一个为用户提供广角放置范围的地方,你必须使用高旋转公差,这将大大增加匹配时间。



如果你有一个存储打印时要匹配,然后可以计算角度,但匹配时精度很重要。使用指纹时,你的算法不能指望像素完全匹配。



再次,其他框架要求你指定最小数量的细节匹配,细节浮动公差,打印扫描质量等然后他们根据这些值和每个分数为这些分数生成一个分数。
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.


这篇关于c#中的指纹检测角度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆