Hallo mmp5,
ich habe auch mal in einem Projekt (4 Leute) Bildverarbeitung gemacht. Ist allerdings schon ein paar Jahre her
Wir sind über "ähnliche" Probleme wie du gestolpert. Ich versuch mich mal zu erinnern und hoffe es Hilft dir.
1) Performance
Nachdem wir nicht die von .NET angebotenen Bitmap-Funktionen genommen haben, sondern für das Vergleichen von Bildern/Bildausschnitten oder zum Drehen/Skalieren eines Bildes es in einem Unsafe-Block gemacht hat, war es kein Problem mehr. Wir konnten locker im Bruchteil einer Sekunde ein Bild mit einem "lahmen"/Standard-Büro-PC Drehen, Skalieren und Vergleichen. Wenn du ein paar Sekunden Zeit hast, denke ich dass die .NET ausreichend sind
2) Bildausschnitt vergleichen
Ja das geht super. Wie unter 1) gesagt kannst du es mit den Bitmap-Funktionen machen oder selber in einem "schnelleren" unmanaged Codebereich Implementieren.
3) Fehler
Das ist sehr sehr schwierig. Wir hatten auch das Problem, dass durch Ausdruck und einscannen sich die Referenzpunkt verschieben, verdrehen oder skalieren. Einfachste Lösung war das Einfügen eines "Referenzbalken". Das war ein dicker Balken unten auf der Seite bei dem wir die Skalierung, Drehung und Verschiebung erkennen konnten. Ich vermute du hast immer unterschiedliche Dokumente und auf deren Aussehen keinen Einfluss - deshalb ist es sehr schwierig.
Wir haben Allgemeine Algorithmen angewendet um etwaiges Rauschen/Schmutz zu entfernen. Darüber findet man im Inet genug. Um dein Logo zu finden kannst du vlt. einen Vergleich machen, der die Übereinstimmung in Prozent zurück gibt (2% haben für die Startkoordinaten 20,20 übereingestemmt, 40% für 20,25 usw.). Wenn du weißt, dass ein Logo auf dem Bild ist, dann kannst du den Bereich mit der höchsten Übereinstimmung zurück geben.
Da fällt mir noch was ein: Die Farbproblematik haben wir durch s/w scannen gelößt
Nun ja... soweit mal meine Erinnerung/Ideen. Bei Bedarf kann ich den Quellcode ausgraben
Gruß Daniel