Compare whether the feature templates for two pieces of fingerprints are matched or not. Here, regTemplate represents fingerprint registration feature templates, verTemplate expresses fingerprint verification feature templates which are collected on the spot, AdoLearning denotes whether to carry out fingerprint feature template learning updating or not, and AregFeatureChanged shows whether the registration template regTemplate has been changed or not. True will be returned when the two pieces of fingerprints are matched, and False will be returned when not matched.

The fingerprint feature will vary to certain extent with the time, usually which will not pose an influence on the verification of fingerprints. While by fingerpirnt feature template learning updating, the system can obtain an integrated new template, so as to lower the FRR.




private void btnVerFinger_Click(object sender, EventArgs e)
private void VerFinger()
if (axZKFPEngX1.IsRegister)
this.axZKFPEngX1.OnCapture += new AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEventHandler(this.axZKFPEngX1_OnCapture);
private void axZKFPEngX1_OnImageReceived(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnImageReceivedEvent e)
object imageObject = new object();
            axZKFPEngX1.GetFingerImage(ref imageObject);
            PictureBox pictureBox1 = new PictureBox();
            pictureBox1.BackColor = System.Drawing.SystemColors.ButtonFace;
            pictureBox1.Location = new System.Drawing.Point(18, 20);
            pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
            pictureBox1.Size = new System.Drawing.Size(411, 572);
            pictureBox1.TabIndex = 11;
            pictureBox1.TabStop = false;
            Graphics g = pictureBox1.CreateGraphics();
int dc = g.GetHdc().ToInt32();
            axZKFPEngX1.PrintImageAt(dc, 0, 0, axZKFPEngX1.ImageWidth, axZKFPEngX1.ImageHeight);
private void axZKFPEngX1_OnFeatureInfo(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnFeatureInfoEvent e)
string sTemp = "";
if (axZKFPEngX1.IsRegister)
                sTemp = "Register status: still press finger " + axZKFPEngX1.EnrollIndex.ToString() + " times!";
            sTemp = sTemp + " Fingerprint quality";
int lastq = axZKFPEngX1.LastQuality;
if (e.aQuality == -1)
                sTemp = sTemp + " not good, Suspicious fingerprints, quality=" + lastq.ToString();
else if (e.aQuality != 0)
                sTemp = sTemp + " not good, quality=" + lastq.ToString();
                sTemp = sTemp + " good, quality=" + lastq.ToString();
object _byteRegTemplate;//This is set in onroll
private void axZKFPEngX1_OnCapture(object sender, AxZKFPEngXControl.IZKFPEngXEvents_OnCaptureEvent e)
             _byteRegTemplate =  axZKFPEngX1.GetTemplate();
bool RegChanged = false;
byte[] bTemp =(byte[]) axZKFPEngX1.GetTemplate();
if (axZKFPEngX1.VerFinger(ref _byteRegTemplate, bTemp, false, ref RegChanged))
               MessageBox.Show("Verify Succeed");
                MessageBox.Show("Verify Failed");