MAL-Homepage
Inhaltsverzeichnis
MAL Dokumentation: Druckverteilungsbilder
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_bildUmgekehrt 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
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 ] printerDas elementare Wort für die Umrechnung eines EMED-Datensatzes in eine Punktgraphik ist das Wort emed_spots.
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