Schwellwerte für Graustufenbilder
EP0187911: Thresholding technique for graphics images using histogram analysis
(IBM (US))
http://swpat.ffii.org/patents/txt/ep/0187/911/
Ansprüche
- Hauptanspruch
Bestimmen von 3 Schwellwerten für ein Grauwertbild zur Konvertierung nach 2-Bit
Farbtiefe
- Histogramm- und Medianbestimmung
- realen (besetzten) Anfang (dunkel) und Ende (hell) des Histogrammes finden
- Bestimmung der Hintergrundfarbe: schwarz nur, wenn dies im Bild überwiegt,
- ansonsten weiß
- Trennwert zwischen Vorder- und Hintergrund bestimmen
- Festlegung der 3 Schwellwerte innerhalb des Vordergrundbereiches
- Nebenansprüche
Berechnung der o.g. realen Anfangs- und Endwerte im Histogramm, durch
Aufsummation ab Anfang/Ende im Histogramm bis "signifikantem" (nicht
näher beschriebenem) Anteil und Rückwärtslaufen bis Nulleintrag (oder
wieder Anfang/Ende)
- Schwellwerte innerhalb Vordergrund auf Weg vom Trennwert zum
Vordergrundminimum mit Anteilen 1/8, 1/4, 1/2
- Wie 3., aber mit 3/16, 3/8, 3/4
- Bestimmung der Hintergrundfarbe: Wenn Abstand zwischen Median und realem
Anfangswert kleiner ist als die Hälfte des Anstandes zwischen Median und
realem Endwert, dann Hintergrund schwarz, sonst weiß
d.h. Standard ist Weiß (Papier), nur im Extremfall Schwarz
- Apparat, der 1. realisiert
- Apparat, der 2. realisiert
- Apparat, der 3. realisiert
- Apparat, der 4. realisiert
- Apparat, der 5. realisiert
Verletzungsprogramm
Python-Skript
(Achtung: Bitte nicht ausführen!)
Hierbei bitte ich um Entschuldigung für die übermäßige Länge des Programmes,
dies hat folgende Gründe:
- Hat der Autor viele kleine Trivialitäten aneinandergereiht, die auch so
implementiert werden müssen einfaches lineares Programm
- Soll es sehr leicht lesbar sein
- Das komplizierteste an dem Programm ist die eine (zweidimensional)
verschachtelte for-Schleife, die das Ergebnisbild erstellt (und eigentlich
gar nicht dazu gehört, da es ja nur um die Schwellwertberechnung
gehen soll)
- Das Programm verletzt praktisch alle Ansprüche gleichzeitig
Zum Trost verletzt dieses Programm gleich noch 2 weitere Patente (EP0129439
und EP0266049), und ich habe noch inhaltliche Fehler (siehe unten) gefunden,
die dazu führen, daß eine "berichtigte" Realisierung des Patentes nicht dessen
"Schutz" verdient.
Zum Code: Das Python-Programm, das die Python Imaging Library (PIL,
für das Lesen und Schreiben der Bilddateien) benutzt, wird mit 2
Kommandozeilenparametern gestartet, welche die Quelldatei und den
Basisnamen der Zieldateien (z.B. "ziel" für
"ziel.jpg") bestimmen.
Das jew. Grauwertbild wird eingelesen (Zeile 5), dessen Histogramm (ab
Zeile 6) und Median (ab Z.12) bestimmt, besagte Extrema (ab Z.19) berechnet
(wobei ich als Beispiel als signifikanten Anteil des Gesamtbildes 0.05 = 5%
annehme; Verfahren aus Anspruch 2), die Hintergrund- und Vordergrundfarbe
bestimmt (ab Zeile 36, mit Verfahren aus Anspruch 5) und der Trennwert (Z.42)
und die Schwellwerte (Z.44) berechnet.
Alles ab Zeile 48 wäre eigentlich nicht nötig, da nicht die
Bildkonvertierung, sondern nur die Schwellwertberechnung wichtig ist. Alles
weitere dient also nur der Demonstration bzw. dem Debugging. :)
Übrigens werden in diesem Programm gleich noch mindestens 2 weitere
Patente verletzt, nämlich EP0129439 (LZW-Kompression) und EP0266049
(JPEG-Kodierung), da das Ergebnisbild sowohl als JPG als auch im GIF-Format
abgespeichert wird.
HINWEIS: In den Ansprüchen 1 und 6 wurden die Bezeichnungen
"background (color) extreme" und "foreground color
extreme" (die aus dem realen Anfang bzw. Ende des Histogrammes
hervorgehen) verwechselt, wo es um die Berechnung des Trennwertes
zwischen Vordergrund und Hintergrund geht. Dies zeigen folgende
Fakten:
- Wären die erwähnten Ansprüche sonst unlogisch
- Wird der Sachverhalt in der Beschreibung zum Patent gleich zweimal
anders herum beschrieben
- Ist es im Bild zur Beschreibung des Patentes auch anders
herum
- Gibt es mit der buchstäblichen Realisierung des Patentes Überlauffehler
im Programm
- Sähe das Ergebnisbild nicht gut aus (u.U. schwarzes / weißes
Bild)
Das vorliegende Programm
verletzt also fast sämtliche Ansprüche, da es die
angegebenen Verfahren realisiert und in Symbiose mit einem Allzweck-PC
als beschriebener "Apparat" fungiert. Ersetzt man in den
Zeilen 44 bis 46 die Verhältniswerte (1/8, 1/4, 1/2) mit 3/16,
3/8, 3/4, so werden natürlich auch die Ansprüche 4 und 9
ordnungsgemäß verletzt. (Der abgewandelte Quellcode ist in
EP0187911.script2.html wieder zu
finden.)
- 10 verletzte Ansprüche,
- 2 logische Fehler in den Ansprüchen,
- weitere verletzte Patente :)
Übersicht Sieger-Patente
Letzte Änderung: 11. Januar 2003
Benedikt Wildenhain,
patente@benedikt-wildenhain.de