Zunächst habe ich das Bild nach schwarz/weiß umgewandelt. Mein nächster Ansatz war es dann, die schwarzen Pixel zu zählen. Anschließend habe ich diese mit den weißen ins Verhältnis gesetzt und ab einem Wert von 3 ‰ (Promille) das Bild als Bild mit Inhalt deklariert. Allerdings war das sehr fehlerbehaftet. Denn es gibt nicht nur Staub, Falten etc., sondern dann auch schwarze Ränder und - überholter Beitrag - schwarze Löscher. Also schneide ich jetzt die Ränder innerhalb bestimmter Grenzen ab. Anschließend zähle ich die Anzahl der schwarzen Pixel. Wenn diese einen absoluten Wert überschreiten, ist es kein leeres Bild mehr. Das beschleunigt sogar die Suche, weil ich dann die Procedure verlassen kann.
Diese beiden Werte –
3 Promille und deinen
absoluten Wert an schwarzen Pixeln – kannst du, wenn du es komfortabler gestalten möchtest, dem Anwender als einstellbar überlassen, da ja nicht alle Scanner gleich gut oder schlecht scannen und die Verkratzungs- und/oder Verschmutzungsrate des Scanglases auch unterschiedlich sein kann. So könnte der Anwender dann Dokumente mit wenig sehr kleiner Schrift, die sonst vielleicht als leer gekennzeichnet würden, ebenfalls einstellen. Noch komfortabler wäre dann das Abspeichern diverser benutzerdefinierter Konfigurationen.
Bei dem Ganzen sehe ich aber noch ein Problem: Es kann durchaus vorkommen, daß auf einem Din-A-4-Blatt nur ganz ganz wenig Text steht oder nur ein klitzekleines Logo eingescannt werden soll. In diesem Fall könnte es sein, daß ein daraus resultierendes Bitmap ebenfalls als leer interpretiert würde. Daher sollte man vielleicht noch überprüfen, ob soundsoviele Pixel nebeneinander schwarz sind und bei einer – wiederum durch den Anwender einstellbaren – Größe das Bild durchgehen lassen. Sicher kennst du dieses Prinzip aus Tracing-Programmen, die Pixelbilder in Vektorgrafiken umwandeln wie z.B. Corel Trace.