Schrifterkennung mit dem Programm S c r y p t o ------------------------------------------------ Wie der Name entstand: Ein Schriftstck heižt im lateinischen scriptum. Auch wenn das Latein heute etwas aus der Mode gekommen ist, so wird dieses Wort doch noch heute an den Hochschulen verwendet. Aber wie kam das Y in den Programmnamen? Nun - Schrift hat viel mit Žsthetik zu tun, und da das Y so ein sch”ner Buchstabe ist, der leider viel zu selten in der deutschen Sprache vorkommt, habe ich das Y in den Programmnamen eingebaut und damit das Ganze noch ein wenig vornehm klingt (nomen est omen), habe ich ein O darangehaengt. Es heižt zwar "vornehm geht die Welt zugrunde", aber man soll ja posetiv denken. Also hoffen Sie mit mir, daž das Programm m”glichst viele Buchstaben richtig erkennt und wenn einmal ein falscher 50iger dabei ist, dann bedenken Sie, daž das Programm ja nichts gekostet hat. Irren ist schliežlich nicht nur menschlich! Mehr zur philosophischen Seite der Datenverarbeitung in dem Ordner GEGJAHWE in der Datei NEUROVOR.DOC (1st Word Plus Text). Dieser Ordner enth„lt aužerdem noch Texte, die man bei der Diskussion mit christlichen Sekten und christlichen Fundamenta- listen als Argumentation verwenden kann. Der Ordner enth„lt einen Teil jener Texte, die Ende 1993 als Buch unter dem Titel "Mit Argumenten gegen die Zeugen Jahwes" erscheinen sollen (gute Vors„tze fr das Jahr 1993) Zur Arbeitsweise des Programms SCRYPTO: Grunds„tzliches Jede Art der Informationsgewinnung geht von bestimmten Voraus- setzungen aus. Wir gehen z. B. von der Voraussetzung aus, daž die ganze Welt aus unterschiedlichen Dingen besteht. Streng genommen stimmt das nicht ganz, denn die ganze Welt ist erfllt von elektromagnetischen Kraftfeldern und die Gravitation h„lt unsere Galaxie zusammen. Atome und Molekle sind nur Energiebndel in diesem Kosmos, Bndel mit unterschiedlicher Gr”že und unter- schiedlichen Eigenschaften. Mit den Voraussetzungen ist das eben so eine Sache. Die meisten stimmen nur zu einem gewissen Prozentsatz oder sie bleiben Ansichtssache. Die Informationsgewinnung aus einem Bild l„žt sich grob als ein dreistufiger Prozež beschreiben. Zuerst wird das Bild aufgeteilt in kleinere Einheiten. Diese Einheiten werden dann mit Ged„cht- nisinhalten verglichen und schliežlich wird ein symbolischer Wert zugewiesen. Das Ged„chtnis besteht hier aus einer Tabelle, in der die Zeichen samt ihrer Zuordnung zu bestimmten Symbolen stehen. Werden „hnliche Merkmale erkannt, dann wird ein symbolischer Wert zugewiesen, in diesem Fall ein Schriftsymbol. Bild lesen und korrigieren Nach dem Einlesen des Bildes (Menleiste "Datei"), kann man den relevanten Teil des Bildes eingrenzen mit den Menpunkten "links oben", "rechts unten" (Menleiste "Markierungen"). St”rende Linien, einzelne Buchstaben oder auch zusammenh„ngende Bereiche kann man mit dem Menpunkt "l”schen einer Linie" beseitigen (Das Fadenkreuz auf den Buchstaben setzen und die linke Mouse-Taste antippen). Rechteckige Bildschirmbereiche kann man mit dem Menpunkt "l”schen eines Rechecks" verschwinden lassen. (Bei gedrckter linker Mouse-Taste von links oben nach rechts unten ein Rechteck aufziehen. Beim Loslassen der Mouse- Taste wird das Rechteck gel”scht.) Beides unter der Menleiste "Markierungen". Zeichensatz und Spelling-Tabelle Nun kann, falls vorhanden, noch ein Zeichensatz eingetrichtert werden (Menleiste "Buchstaben"). Wenn kein Zeichensatz vorhanden ist, reagiert das Programm wie ein Kleinkind. Es schreit! Aber damit die Nachbarn nicht aus dem Bett fallen, erscheint am Bildschirm eine Dialogbox, auf der man bis zu vier Buchstaben eingeben kann. Das Programm verarbeitet also auch sogenannte Ligationen - Buchstaben, die aneinanderkleben. Damit der Aufbau eines Zeichensatzes nicht so langweilig ist, gibt es fr die Zeicheneingabe zwei Dialogboxen, die willkrlich (zuf„llig) aus- gew„hlt werden. Und nachdem in unserer Welt grože Tiere den Ton angeben, sind die Tiere hier auch gleichzeitig der OK Button. Die Zeichenkombination wird im Bild schwarz markiert und erscheint, soweit m”glich ber der Dialogbox. In der Dialogbox wird die Zeichenkombination ebenfalls angezeigt. Ein Icon (64 * 64 Pixel) ist dafr reserviert. Da beim Scannen manchmal auch Punkte erzeugt werden, wo im Original keine sind, kann man diese Zeichen bergehen, wenn sie als im Zeichensatz fehlend moniert werden. Hierzu tippt man in der Dialogbox "Zeichen ignorieren" und "Zeichen nicht speichern" an. Die Spelling-Tabelle dient dazu šbersetzungsfehler zu minimieren. Das Programm geht bei seiner Interpretation der Zeichen von der Annahme aus, daž ein Zeichen aus einem zusammenh„ngenden Pixel- bereich besteht. Das Programm sieht bei einem i erst einmal nur das i ohne den Punkt und dann das Tpfelchen auf dem i. Das i wird also erst einmal als "i." bersetzt. Um dies zu korrigieren gibt es die Spelling-Tabelle. Wie einzelne Zeichenkombinationen umgesetzt werden k”nen, kann man sich mit dem Menpunkt Spelling Tabelle „ndern ansehen (Mit return durchbl„ttern oder wie blich mit der linken Mousetaste auf Abbruch tippen, wenn man die Dialogbox verlassen will). Zeichenabstand Der Menpunkt Leerzeichen dient dazu den minimalen Pixelabstand zwischen zwei Worten festzulegen. Wird hier kein Wert angegeben, so wird mit dem Wert gearbeitet, der im Zeichensatz hinterlegt ist. Der eingegebene Wert wird zus„tzlich bildlich in der Dialogbox als Leerzeichen zwischen zwei Balken dargestellt. Diese Dialogbox kann man verlassen, indem man das schwarz umrahmte OK mit der linken Mouse-Taste antippt. Wo ist das nicht so? Schrifterkennung Tippt man auf Analyse, so beeilt sich das Programm den Text zu entziffern. In mehreren Schritten wird jeweils ein Zeichen isoliert. Erst einmal werden die Leerzeilen markiert, dann wird der Beginn eines Zeichens ermittelt und schliežlich wird das Zeichen in den Analysebereich bertragen und verschwindet dann von der Bildfl„che. So braucht immer nur nach dem ersten Zeichen gesucht zu werden und das steht immer in der obersten Zeile links. Das Programm arbeitet nach einem leicht modifizierten pattern- matching Verfahren. d. h. das Zeichen wird pixelweise mit einem Zeichen aus der Zeichentabelle verglichen, wobei das Zeichen jeweils um ein Pixel nach links, rechts, oben und unten ver- schoben wird. Ungenauigkeiten des Scanners werden auf diese Weise etwas ausgeglichen. Der Zeichensatz wird so m”glichst klein gehalten. Dies hat leider aber auch einen Nachteil: Wenn die Zeichen sehr klein sind, dann verh„lt sich das Programm wie ein alter Dackel ohne Brille. Es verwechselt mal den einen oder anderen Buchstaben. Das Programm interpretiert, wie bereits gesagt, jeden zusammen- h„ngenden Bereich als Zeichen. Es kann daher auch Kursivschrift verarbeiten. Das Programm erkennt das als Zeile, was zwischen den Leerzeilen steht. Die Information wird zeilenweise abgearbeitet. Fehlt diese Leerzeile zwischen den Zeilen, so ist es am besten, wenn man den Analysevorgang mit dem Menpunkt "Analyse beenden" vorzeitig verl„žt. Das Programm nimmt sonst abwechselnd einen Buchstaben aus der oberen und einen aus der unteren Zeile. Die fehlende Leerzeile kann man mit dem Menpunkt "Leerzeile erzeugen" plazieren (Menleiste Markierungen). Auf dem Textfenster kann man den šbersetzungsvorgang verfolgen. Jeweils drei Zeilen maximal 75 Zeichen werden hier dargestellt. Um den Text zu verarbeiten, speichert man ihn erst einmal mit dem Menpunkt Textausgabe ab. Jedes Textsystem, das ASCII-Code lesen kann, kann nun diesen Text verarbeiten. Eine Korrekturm”glichkeit des Textes ist nicht vorgesehen, da dies Textsysteme viel besser k”nnen. Das Programm Scrypto dient nur dazu, Texte aus Bchern, die man als Zitate in eigene Werke einbauen will, maschinen- gerecht aufzubereiten. Noch ein kleiner Tip: Bei kleinen Schriften, hilft manchmal die Vergr”žerung mit einem Kopierger„t. Allerdings drfen die Vorlagen nicht schr„g aufgelegt werden, da das Programm die Leerzeilen immer im 90ø Winkel abgreift. Wenn das Programm im Interpretermodus gestartet wird (mit der Omikron-Basic-Version vom Herbst 91), kann man sofort nach dem Interpretieren eines Bildes das n„chste Bild laden. Das compilierte Programm bringt hier leider Fehler. Diese Funktion ist mit Vorsicht zu geniežen. Was tun wenn...: ... im Text ein Umlaut markiert wird, aber in der Dialogbox nur Buchstabe (wie a, o oder u) erscheint. - Geben Sie immer nur das ein, was Sie in der Dialogbox sehen. ... in der Dialogbox zur Eingabe der Zeichen ein Umlaut mit nur einem Punkt erscheint. - Geben Sie den Umlaut ein. Die Zeichenfolge "Umlaut ." wird ber die Spelling- tabelle umgesetzt in den Umlaut. ... ein Buchstabe nur zur H„lfte in der Dialogbox erscheint. - Wenn dies regelm„žig nur bei diesem Buchstaben geschieht, so geben Sie fr die erste H„lfte des Buchstabens das entsprechende Zeichen ein und fr die zweite H„lfte irgend ein Sonderzeichen. Nach dem Analyse-Vorgang erweitern Sie die Spelling-Tabelle um diesen einen Eintrag (Buchstabe Sonderzeichen immer umsetzen in Buchstabe). Verlassen Sie nun das Programm und laden es erneut, dann wird der Text richtig bersetzt. ... regelm„žig ein Buchstabe verwechselt wird, so sollte man den Zeichensatz berprfen. Dies geht mit dem Menpunkt Zeichensatz „ndern. Die Dialogbox, die dann erscheint, enth„lt das Feld "Suche Zeichen". Hier kann das falsch bersetzte Zeichen angegeben werden. Wird Z. B. ein a als s bersetzt, so gibt man hier s ein. In der Dialogbox erscheinen dann nacheinander alle Zeichenzuordnungen fr s. Erscheint in diesem Fall als Zeichen ein a, so kann man das s in a um„ndern. ... man sich bei der Zeicheneingabe vertippt hat und merkt dies sofort, so kann man den Analysevorgang abbrechen und kann sich mit dem Menpunkt Zeichensatz „ndern, die letzten drei Zeichen in einer Dialogbox ausgeben lassen und ggf. „ndern. Dateien: SCRYPTO.PRG Das Programm Dateien mit dem Assemblermodule, die vom Programm Scrypto Suffix .BAX angesprungen werden. Die zeitkritischen Routinen sind alle in Assembler geschrieben. SCRYPTO.CHR Der Zeichensatz. Der Zeichensatz kann jedoch auch anders heižen. Er wird immer unter dem gleichen Namen abgespeichert mit dem er gelesen wurde. Dies gilt ananlog auch fr die Spelling-Datei und die Textdatei. SCRYPTO.SPL Die Spelling-Datei. SCRYPTO.TXT Die Textdatei. SCRYPTO.IMG Eine im IMG-Format komprimierte Bilddatei. Die Umwandlung in eine MFDB.DATEI, die dann im Speicher steht, wird mit dem Assembler- modul IMG.BAX erledigt. Dieses Assembler- modul kann auch von anderen Programmen genutzt werden. Ein Source-Code, aus dem die Parameterversorgung ersichtlich ist, ist bei- gefgt. Das Programm wurde mit dem sehr guten public-domain Assembler TURBOASS erstellt. Das Programm SCRYPTO selbst ist in OMIKRON- Basic geschrieben. Es hat daher, wie alle Omikron-Basic-Programme, die mit Gem- Benutzeroberfl„che arbeiten, Schwierigkeiten, wenn GDOS oder NVDI aus dem AUTO-Ordner geladen wird. Der Bildtext, der momentan unter SCRYPTO.IMG steht ist ein Zitat aus dem Buch "Ist die Bibel richtig bersetzt" von Pinchas Lapide. Es k”nnen mehrere Bildtexte nacheinander verarbeitet werden. Bei einem Wechsel des Zeichensatzes muss man allerdings das Programm verlassen. Dateien mit dem In den ersten 20 Byte dieser Datei steht die Suffix .MFDB MFDB (siehe GEM-Befehl VRO_CPYFM). Dieser Bereich wird von dem GEM-Befehl wird normalerweise verwendet, um bit-image Dateien auf dem Bildschirm zu bringen oder im im Speicher zu sichern. Die bit-image Datei steht im Anschluž an die 20 Bytes. Systemgrenzen: Das Programm reserviert insgesamt 1,07 MB Speicher, braucht also ca 1,2 MB Speicher. Das Programm SCRYPTO muž aus dem Ordner SCRYPTO geladen werden, der sich auf Diskette oder einer be- liebigen Festplatten-Partition befinden kann. Die IMG-Datei wird gem„ž ihrem tats„chlichen Platzbedarf im Speicher abgelegt. Die Mfdb-Datei ebenfalls. Fr die Zeichendatei werden bei Neuein- richtung 100000 Bytes reserviert. Wird eine Zeichendatei ein- gelesen, so werden zus„tzlich zum tats„chlichen Bedarf 50000 Bytes reserviert. Die Einhaltung dieser Speichergrenze wird allerdings vom Programm nicht berprft. Es empfiehlt sich daher nach der Analyse eines Dokuments den Zeichensatz zu sichern. Fr die Spelling-Datei werden bei Neueinrichtung 10000 Bytes reserviert. Wird eine bereits vorhandene Spelling-Datei geladen werden zus„tzlich 10000 Bytes reserviert. Danksagung: Dieses Programm ist mein Dank an all' jene, die durch ihr Engagement dazu beigetragen haben und noch dazu beitragen, daž die Software fr den ATARI-Computer sich in erschwinglichen finanziellen Grenzen gehalten hat. Falls Sie auch mal einen sozialen Tag haben, aber nicht gleich ein Programm schreiben wollen, so k”nnen Sie z. B. fr die Lebenshilfe fr geistig Behinderte spenden (Kontonummer: 5803865800 bei der Hypo-Bank Mnchen). Falls Sie an dem Source-Code des Programms interessiert sind, so wissen Sie ja sicher, wie das bei public-domain Software geht. 20,- DM zuverl„ssig an meine Adresse und ein Brief mit Ihrer Adresse. Dann erhalten Sie eine Diskette mit dem Source- Code. Der šberschuž aus dieser Transaktion wird der Lebenshilfe fr geistig Behinderte gespendet. Meine Adresse: Dieter von Spreter Tettnanger Str. 4 W-8000 Mnchen 60