MAL-Homepage Inhaltsverzeichnis



MAL Dokumentation: Druckverteilungsbilder




Inhalt:

1. ALLGEMEINES
2. EINLESEN UND KALIBRIEREN
3. FUNKTIONEN, OPERATOREN
4. DARSTELLUNG
4.1. 2d-Darstellung
4.2. 3d-Darstellung
5. AUSROTIEREN
6. AUSBLENDEN VON TEILBEREICHEN


1. ALLGEMEINES

Bilder von Druckverteilungen werden EMED-Bilder oder EMED-Datensätze genannt, da die entsprechenden Softwareteile ursprünglich für die Bearbeitung von Daten vom EMED-System (Fa. Novell, München) entwickelt wurden. Die Worte und Datensätze lassen sich aber prinzipiell für beliebige Systeme, die Druckverteilungen messen, verwenden. Einzig die Hardwareschnittstelle zum Einlesen der Daten (Wort
emed>) muß gegebenenfalls ersetzt werden.

Die Worte für das Einlesen von EMED-Daten sind immer nur für bestimmte Gerätetypen ad hoc entwickelt worden. Das Wort emed> läuft nur unter MS-DOS und wurde mit einem Gerät der ersten Generation getestet (die heutigen Geräte kann man vermutlich damit nicht mehr betreiben). Das Wort pliance> ist jüngeren Datums und dient zum Einlesen von Satteldecken-Daten von Datei. Leider gibt es von Seiten der Firma Novell keine allgemein gültige Beschreibung der Datenformate. Daher kann ich auch nicht garantieren, dass das Wort pliance> für alle Satteldecken verwendet werden kann.

Für Testzwecke und zum Ausprobieren der Beispiele kann man einen Muster-Datensatz im Metaformat von der Datei emed.met downloaden.

EMED-Bilder werden am Stack als eigener Typ von Datensätzen geführt. Sie beinhalten die Pixelwerte, sowie die Größe der Pixel (in Meter) in x- und y-Richtung. Sie werden komprimiert geführt und jeweils bei Berechnungen intern expandiert und wieder komprimiert. Komprimiert wird, indem zusammenhängende Bereiche mit Nullwerten durch einen Nullwert mit der dazugehörigen Wiederholungsanzahl ersetzt werden. Datensätze, die keine Nullwerte haben, werden daher bei der Komprimierung nicht kleiner.

Die einfachste Variante EMED-Datensätze auszugeben ist das Wort . (Punkt). Es gibt die Zahlenwerte der einzelnen Pixel aus, was jedoch im Allgemeinen eher unübersichtlich ist. Graphische Ausgabemöglichkeiten werden in der Folge noch näher beschrieben.

Samtliche Worte für EMED-Datensätze können unter Topic emed gefunden werden.

MAL-Homepage Inhaltsverzeichnis


2. EINLESEN UND KALIBRIEREN

Das Wort
emed> liest die Daten vom EMED-Gerät über die serielle Schnittstelle ein und legt einen Verbund mit Emed-Datensätzen am Stack ab.

Syntax:

interfacenr -> [ bild1 bild2 ... ]

Das im EMED-Gerät ebenfalls abgespeicherte Mittelwertbild wird dabei nicht mit transferiert (es kann ja jederzeit berechnet werden).

Mit dem ersten Nullbild (alle Pixelwerte < 1N/cm2) wird die Übertragung abgebrochen.

Die Pixelgröße im Datensatz wird dabei nicht eingestellt, sondern mit 1 vorbesetzt. Sie wird beim Kalibrieren der Meßdaten mit dem Wort emed_calib festgelegt.

Syntax:

bild xsize ysize kalibdatei -> kalbild

Der Parameter ´kalibdatei´ ist ein String mit dem Dateinamen der Kalibrierdatei. Sie enthält für jedes Pixel 256 Byte mit den Druckwerten (Einheit: 0.5 Newton/cm2), die den 256 Rohwerten zugeordnet sind.

Das Wort pliance> liest Druckdaten von einer Pliance-Satteldecke (16x16 Pixel) von einer '*.m'-Datei ein.

Hat man keine Möglichkeit, die Daten direkt vom Gerät einzulesen, so kann man mit dem Wort real>emed einen Verbund von Realfeldern auf einen EMED-Datensatz umwandeln.

Syntax:

[ 
[ f11 f12 f13 ... ]
[ f21 f22 f23 ... ]
[ f31 f32 f33 ... ]
.
.
] xsize ysize -> emed_bild
Umgekehrt können mit dem Wort emed>real die Pixelwerte in einen zweidimensionalen Verbund mit Druckwerten (wie oben) umgewandelt werden.

MAL-Homepage Inhaltsverzeichnis


3. FUNKTIONEN, OPERATOREN

Alle mathematischen Funktionen wie z.B.
sin, log, sqrt usw. lassen sich auch auf EMED-Datensätze oder Verbunde davon anwenden. Gleiches gilt auch für Operatoren wie *, + usw.. Weiters lassen sich die Worte mean, max, min und variance anwenden.

Für das zeitliche Normalisieren von EMED-Zeitreihen (Umrechnung auf eine vorgebene Sample-Anzahl) existiert das Wort emed_normalize. Es verwendet eine lineare Interpolation für die Berechnung der Zwischenbilder.

Das Wort emed_fz berechnet aus einem Emed-Datensatz (oder einem Verbund davon) die Vertikalkraft (eine Zeitreihe mit Vertikalkräften), emed_area berechnet die Größen von belasteten Flächen und emed_ax und emed_ay berechnen den Verlauf der Schwerpunktslage in X- bzw. Y-Richtung.

MAL-Homepage Inhaltsverzeichnis


4. DARSTELLUNG

4.1. 2d-Darstellung

Die einfachste, jedoch nicht parametriesierbare Variante, EMED-Datensätze graphisch aufzubereiten ist das Wort
emed_aplot. Es kann mit einem Einzelbild oder einem Verbund von Bildern versorgt werden. Im zweiten Fall wird ein Mittelwertbild berechnet und zusätzlich der Verlauf der Schwerpunktspur eingezeichnet.

Beispiel (die Variable ´bilder´ enthält einen Verbund mit EMED-Bildern):

[ 0 0 400 1000 area bilder emed_aplot ] printer

Die Einstellung des Plot-Areas mit 0 0 400 1000 area bewirkt, daß das Seitenverhältnis der dargestellten Graphik mit dem der Meßplattform übereinstimmt.

Eine Skala für die Zuordnung der Punktgrößen zu Druckwerten (Einheit: N/cm2) kann mit dem Wort emed_scale eingezeichnet werden. Es ist ebenfalls mit einem EMED-Datensatz (keinem Verbund), aus dem der Maximal- und Minimalwert ermittelt wird, zu versorgen.

Beispiel:
[ 0 0 400 1000 area
bilder emed_aplot
bilder max emed_scale ] printer

Das elementare Wort für die Umrechnung eines EMED-Datensatzes in eine Punktgraphik ist das Wort emed_spots.

Syntax:

emed -> graphik

oder

[ emed1 emed2 ... ] -> graphik

Es verlangt, daß die Pixelwerte im Wertebereich zwischen -1 und 1 liegen (negative Werte werden als leere Kreise dargestellt). Die Verteilung der Punkte in der Darstellungsfläche erfolgt aufgrund der Pixelgröße und der aktuellen Skalierung der Graphik (Systemvariable >xpromille und >ypromille, siehe Kapitel Graphik).

Beispiel:
3 >> xparts 0 0.14 xscaling 
3 >> yparts 0 0.29 yscaling
[ 0 0 400 1000 area
bilder mean dup max / emed_spots 
axes scales ] printer

MAL-Homepage Inhaltsverzeichnis


4.2. 3d-Darstellung

Mit dem Wort
emed>trajectories kann ein Verbund vom EMED-Bildern in eine Instanz der Klasse trajectories_class umgewandelt werden und somit direkt als 3d-Animation angezeigt werden.

Das Plattenformat wird dabei direkt aus der im EMED-Datensatz angegebenen Pixelgröße ermittelt. Einzig die Skalierung der Kraft muss angegeben werden.

Beispiel:

public \ 3d \ interfaces >voc
"emed.met" meta> >> bilder
bilder 0.1 emed>trajectories 0.002 * anima


MAL-Homepage Inhaltsverzeichnis


5. AUSROTIEREN

Will man Datensätze von verschiedenen Einzelmessungen vergleichen, mitteln o.ä, so ist, auch wenn die Messungen alle vom gleichen Probanden stammen, zuvor eine Normalisierung der Lage und Orientierung erforderlich, da bei jeder Messung der Fuß an einer anderen Stelle auf die Meßplatte aufgesetzt wird.

Sind die Einzelmessungen darüber hinaus von verschiedenen Personen, so ist auch eine Anpassung in der Größe (Zooming) erforderlich.

Das Wort
emed_auto berechnet die Verschiebungs- und Rotationsdaten, die für die Normalisierung erforderlich sind (ausgenommen den Zooming-Faktor). Es verwendet für die Berechnung der Verschiebung den Schwerpunkt der belasteten Fläche, und für die Berechnung der Verdrehung deren Hauptträgheitsachse.

Syntax:

emed -> [ xshift yshift angle 1 ]

Der derart berechnete Datensatz kann für die Versorgung der Worte emed_move oder emed_linmove verwendet werden, die die Rotation, Verschiebung und das Zooming durchführen. Zweiteres berechnet die neuen Pixelwerte indem zwischen alten Pixelwerten linear interpoliert wird. Das Wort emed_move benötigt man in erster Linie zum Verschieben von Masken (siehe Kapitel ´Ausblenden von Teilbereichen´).

Syntax:

emedalt [ xshift yshift angle zoom ] -> emedneu

Beispiel:

bilder emed_auto >> parameter
bilder parameter emed_linmove >> normalbilder
[
[ 0 0 400 1000 area bilder emed_aplot ]
[ 500 0 900 1000 area normalbilder emed_aplot ]
] printer 

MAL-Homepage Inhaltsverzeichnis


6. AUSBLENDEN VON TEILBEREICHEN

Eine Maske für das Ausblenden eines Teilbereichs kann interaktiv mit dem Wort
emed_select_part eingegeben werden.

Syntax:

emed -> maske

Im Datensatz ´emed´ wird ein Muster-Fußabdruck übergeben. Mit der Maus können bei gedrückter linker Maustaste einzelne Pixel markiert werden. Zeigt man mit dem Cursor auf ein Pixel innerhalb eines durch markierte Pixel abgegrenzten Bereichs und drückt die mittlere Maustaste, so wird der ganze Bereich ausgefüllt. Mit der rechten Maustaste wird das Wort beendet.

Als Ergebnis erhält man einen EMED-Datensatz vom gleichen Format wie der Muster-Fußabdruck, bei dem die markierten Pixel auf 1 und alle anderen auf 0 gesetzt sind.

Wird ein EMED-Datensatz mit der Maske multipliziert, so werden alle nicht markierten Pixel auf 0 gesetzt, also ausgeblendet. Da alle mathematischen Funktionen auch für EMED-Bilder zulässig sind, kann man logische Verknüpfungen einfach realisieren:

Beispiele:

Und Verknüpfung: bild maske *
Oder Verknüpfung: maske1 maske2 max
Invertieren: maske -1 * 1 +

MAL-Homepage Inhaltsverzeichnis