Startseite | Themenabende | Mailingliste | Pläne | Links | GnuPG-Schlüssel

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

  1. Hauptanspruch
    Bestimmen von 3 Schwellwerten für ein Grauwertbild zur Konvertierung nach 2-Bit Farbtiefe
  2. 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)
  3. Schwellwerte innerhalb Vordergrund auf Weg vom Trennwert zum Vordergrundminimum mit Anteilen 1/8, 1/4, 1/2
  4. Wie 3., aber mit 3/16, 3/8, 3/4
  5. 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
  6. Apparat, der 1. realisiert
  7. Apparat, der 2. realisiert
  8. Apparat, der 3. realisiert
  9. Apparat, der 4. realisiert
  10. 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:

  1. Hat der Autor viele kleine Trivialitäten aneinandergereiht, die auch so implementiert werden müssen einfaches lineares Programm
  2. Soll es sehr leicht lesbar sein
  3. 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)
  4. 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:

  1. Wären die erwähnten Ansprüche sonst unlogisch
  2. Wird der Sachverhalt in der Beschreibung zum Patent gleich zweimal anders herum beschrieben
  3. Ist es im Bild zur Beschreibung des Patentes auch anders herum
  4. Gibt es mit der buchstäblichen Realisierung des Patentes Überlauffehler im Programm
  5. 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.)

Übersicht Sieger-Patente
Startseite | Themenabende | Mailingliste | Pläne | Links | GnuPG-Schlüssel
Letzte Änderung: 11. Januar 2003
Benedikt Wildenhain, patente@benedikt-wildenhain.de