FANDOM


Diese Seite beschreibt das einbinden der SDK von Sourceafis sehr genau.Sollte es dennoch Probleme geben , einfach einen dementsprechenden Kommentar schreiben.

  • Microsoft_Visual_C#_2010_Express starten.
  • Neues Projekt... anklicken.
  • Windows Form-Anwendung markieren, Name eingeben, und auf OK klicken.
  • (Es kann einen kurzen Moment dauern)
  • Auf Projekt-> Verweis hinzufügen und im Dialog auf durchsuchen gehen.
  • In das Verzeichniss wechseln, indem Sourceafis installiert ist, und Sourceafis.dll öffnen.
  • Gehen sie über F7 in den Code und fügen sie unter den using zeilen diese Zeile ein: using Sourceafis.Simple;
  • Nun haben sie das Einbinden Geschafft.


Nun wollen wir ein Beispielprogramm erstellen.

  • Wechseln sie wieder in den Designer-Modus
  • Erstellen sie:
    • Einen Button mit dem Namen: match und dem Text Analysieren
    • Zwei Buttons mit den Namen:loadImage1/loadImage2 und jeweils dem Text Bild laden
    • Zwei PictureBoxen mit den Namen show 1/show2

Das ganze Sollte dann so aussehen:SDK


Dann gehen wir über F7 in den Code und fügen nach der Funktion public Form1() den Folgenden Text ein:

Bitmap Fingerabdruck1; Bitmap Fingerabdruck2; private static Bitmap ResizePictureByWidth(Image sourceImage, double newWidth) { double sizeFactor = newWidth / sourceImage.Width; double newHeigth = sizeFactor * sourceImage.Height; Bitmap newImage = new Bitmap((int)newWidth, (int)newHeigth); using (Graphics g = Graphics.FromImage(newImage)) { g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.DrawImage(sourceImage, new Rectangle(0, 0, (int)newWidth, (int)newHeigth)); } return newImage; } private static Bitmap ResizePictureByHeight(Image sourceImage, double newHeight) { double sizeFactor = newHeight / sourceImage.Height; double newWidth = sizeFactor * sourceImage.Width; Bitmap newImage = new Bitmap((int)newWidth, (int)newHeight); using (Graphics g = Graphics.FromImage(newImage)) { g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.DrawImage(sourceImage, new Rectangle(0, 0, (int)newWidth, (int)newHeight)); } return newImage; } private void loadImage1_Click(object sender, EventArgs e) { OpenFileDialog loadpic = new OpenFileDialog(); if (loadpic.ShowDialog() == DialogResult.OK) { try{ Fingerabdruck1 = new Bitmap(loadpic.FileName); if (Fingerabdruck1.Height - show1.Height > Fingerabdruck1.Width - show1.Width) { show1.Image = ResizePictureByHeight(Fingerabdruck1, show1.Height); } else { show1.Image = ResizePictureByWidth(Fingerabdruck1, show1.Width); } }catch{ } } } private void match_Click(object sender, EventArgs e) { AfisEngine Afis = new AfisEngine(); Fingerprint F1 = new Fingerprint(); Fingerprint F2 = new Fingerprint(); F1.AsBitmap = Fingerabdruck1; F2.AsBitmap = Fingerabdruck2; Person P1 = new Person(); Person P2 = new Person(); P1.Fingerprints.Add(F1); P2.Fingerprints.Add(F2); Afis.Extract(P1); Afis.Extract(P2); try{ float score = Afis.Verify(P1,P2); if (score > 0) { MessageBox.Show("Match" + Environment.NewLine + score.ToString() + " Punkte"); } else { MessageBox.Show("No Match"); } }catch{ MessageBox.Show("Error"); } } private void loadImage2_Click(object sender, EventArgs e) { OpenFileDialog loadpic = new OpenFileDialog(); if (loadpic.ShowDialog() == DialogResult.OK) { try { Fingerabdruck2 = new Bitmap(loadpic.FileName); if (Fingerabdruck2.Height - show2.Height > Fingerabdruck2.Width - show2.Width) { show2.Image = ResizePictureByHeight(Fingerabdruck2, show2.Height); } else { show2.Image = ResizePictureByWidth(Fingerabdruck2, show2.Width); } } catch { } } }

Dann Fügen wir in public Form1() Folgendes ein:

this.loadImage1.Click += new System.EventHandler(this.loadImage1_Click);
this.loadImage2.Click += new System.EventHandler(this.loadImage2_Click);