set_paint
— Festlegen des Modus für die Darstellung von Grauwerten.
set_paint( : : WindowHandle, Mode : )
set_paint
setzt den Modus des Ausgabefensters für die
Darstellung von Grauwerten (ein- oder mehrkanalig), der von
disp_obj
, disp_image
und disp_color
verwendet werden.
Im Folgenden werden die verschiedenen Arten, in denen Grauwertdaten ausgegeben werden können, dargestellt. Vorab sei bemerkt, dass der Modus 'default' in 99% der Anwendungen die richtige Wahl ist (und deshalb auch als Voreinstellung verwendet wird).
Graubilder können auch als Gebirge aufgefasst werden. Hierzu steht
eine 3D-Darstellung mit '3d_plot' zur Verfügung. Diese Darstellung erlaubt
auch interaktives Betrachten des Höhenmodells, was durch den Operator
update_window_pose
unterstützt wird.
Dreikanalige Bilder werden als RGB-Daten interpretiert.
Vektorfeldbilder werden als Vektorfelder ausgegeben ('vector_field').
Alle verfügbaren Modi können mit dem Operator query_paint
abgefragt werden.
Bei den Modi, die mehr als einen Wert benötigen, sind folgende Techniken möglich:
Es wird nur der Name des Modus angegeben. Hier werden die
Voreinstellungen oder die zuletzt gesetzten Werte verwendet.
Beispiel: set_paint(WindowHandle,'3d_plot')
Es werden alle Werte übergeben. Hierdurch ist es möglich alle
Eigenschaften der Ausgabe festzulegen.
Beispiel: set_paint(WindowHandle,['3d_plot','shaded',
8,0.939,-0.052,0.296,-0.165,0.401,0.072,-0.047,-0.073])
Nur die ersten n Werte werden angeben. Hierbei werden
die nicht angegebenen Werte nicht verändert.
Beispiel: set_paint(WindowHandle,['3d_plot','texture'])
Einige der Werte werden durch einen Stern ersetzt ('*'). Dies
bedeutet, dass dieser Wert nicht verändert werden soll.
Beispiel: set_paint(WindowHandle,['3d_plot','*',8])
Ist der Modus 'default' gewählt, dann muss für die Ausgabe von 2-
und 3-kanaligen Bildern kein Aufruf von set_paint
erfolgen. Es wird dann automatisch ein geeignetes Verfahren
aufgerufen.
Die Ausgabe der Grauwerte wird auch von anderen Operatoren (und
deren Parametern) beeinflusst. Dies sind insbesondere
set_part
, set_part_style
und set_lut
.
Bei einigen Ausgabemodi von
set_paint
werden die Grauwerte grafisch dargestellt
(z.B. 'histogram','contourline','3d_plot_lines', etc.). Dies hat zur
Folge, dass auch Parameter, die mit set_color
,
set_rgb
,set_hsi
,
set_shape
, set_line_width
und set_insert
bestimmt wurden, Einfluss auf die Darstellung haben. Dies kann
z.B. bei set_shape('convex')
und
set_paint(WindowHandle,'histogram')
zu unerwarteten
Ergebnissen führen. Es wird nämlich die konvexe Hülle des
Histogramms ausgegeben. Sollten also unerwartete Ergebnisse
erscheinen, so sind die Werte der Darstellungsparameter für
Regionen zu überprüfen.
Modi:
Einkanalige Bilder
optimale Grauwertdarstellung bei gegebener Hardware (Voreinstellung)
Die Grauwerte des Bildes werden als 3D-Höhenmodell interpretiert und mit Hilfe von OpenGL angezeigt. Der erste Parameter legt fest, auf welche Weise das Höhenmodell angezeigt werden soll. Folgende Modi stehen zur Verfügung:
Das Höhenmodell wird als geschlossene Fläche dargestellt und texturiert. Die Textur wird als zweiter Kanal (für eine Grauwerttextur) oder als zweiter bis vierter Kanal (für eine Farbtextur) übergeben.
Das Höhenmodell wird als geschlossene Fläche dargestellt und mit der aktuellen LUT koloriert.
Das Höhenmodell wird als Gitter dargestellt, wobei verdeckte Linien nicht dargestellt werden. Das Gitter wird mit der aktuellen LUT koloriert.
Ähnlich zum Modus 'contourlines' werden Höhenlinien extrahiert und dreidimensional dargestellt. Die Höhenlinien werden mit der aktuellen LUT koloriert.
Der zweite Parameter ist die Schrittweite, mit der das Bild sowohl in Zeilen- als auch in Spaltenrichtung abgetastet wird. Je kleiner dieser Parameter gewählt wird, desto feiner ist das resultierende Höhenmodell. In gleichem Maße nimmt die Berechnungszeit für die Anzeige zu. Im Falle von 'contour_lines' entspricht dieser Parameter der Anzahl der Intervalle in die der Höhenbereich aufgeteilt wird.
Die Parameter drei bis sechs bilden ein Einheitsquaternion, welches die
Orientierung des Höhenmodells beschreibt (für mehr Informationen über
Quaternionen, siehe axis_angle_to_quat
).
Der siebte Parameter ist der Zoomfaktor. Ein kleinerer Wert führt zu stärkerem Zooming.
Die letzten drei Parameter sind die Zeilen, Spalten bzw. Höhenposition des aktuellen Zentrums. Diese Werte müssen auf den Bereich [-0.5,0.5] skaliert sein.
Der dritte bzw. der siebte Parameter im Tupel kann auf 'auto'
gesetzt werden, damit der Zoomfaktor und das Zentrum automatisch bestimmt
werden, so dass der resultierende Plot das Fenster möglichst gut ausfüllt.
Es ist wichtig, dass der Bildausschnitt des Fensters mittels
set_part
korrekt gesetzt wurde, bevor set_paint
aufgerufen
wird. Wird der dritte Wert des Tupels auf 'auto' gesetzt, so wird
die vorherige (bzw. die vorgegebene) Orientierung verwendet. Wird der
siebte Parameter auf 'auto' gesetzt, wird die angegebene
Orientierung verwendet. Es ist nicht möglich, nach 'auto' noch
Parameter im Tupel anzugeben. Außerdem funktioniert 'auto' nur dann
richtig, wenn 'scale_plot' mittels set_window_param
auf
'true' gesetzt wurde. (Beispiel: {bf
['3d_plot','shaded',4,'auto']})
Abhängig von der Leistungsfähigkeit der Grafikkarte ist es möglich, das
Höhenmodell interaktiv anzuzeigen. Der Operator update_window_pose
bietet einen intuitiven Weg, um obige Parameter zum Beispiel mit Hilfe der
Maus zu verändern.
Mit den Operatorn set_rgb
, set_color
und set_colored
können die Farben für die Zeilen-, Spalten- und Höhenachse (in dieser
Reihenfolge) beeinflusst werden.
Zusätzliche Parameter die den 3D-Plot beeinflussen, können mit
set_window_param
gesetzt werden.
Falls Sie '3d_plot' auf einem unixartigen System nutzen wollen, muss sichergestellt sein, dass Sie ausreichende Rechte für ihre Grafikkarte besitzen.
Defaultwerte:
['3d_plot','shaded',8,0.939,-0.052,0.296,-0.165,0.401,0.072,-0.047, -0.073]
Zweikanalige Bilder
Darstellung des ersten Kanals.
Dreikanalige Bilder
Ausgabe als RGB-Bild mit 'median_cut'.
Vektorfeldbilder
Ausgabe von Vektorfeldern. Es ist möglich Vektorfelder
mit relativen oder absoluten Koordinaten anzuzeigen.
Dieses Verhalten wird mit dem optionalen Parameter
Mode kontrolliert. Mögliche Werte sind 'auto'
(der semantische Typ des Vektorfeldes bestimmt das
Verhalten), 'absolute' und 'relative'. Standard ist
'auto'.
Bei diesem Modus wird für jeden Vektor ein Kreis
mit Durchmesser CircleSize an der Position des Pixels
sowie eine Strecke mit dem Vektor gezeichnet.
Die Schrittweite (Parameterwert: Step) gibt den Abstand
zwischen den gezeichneten Vektoren an. Zu kurze Vektoren
können mit dem dritten Parameterwert (MinLength)
unterdrückt werden. Der vierte Parameterwert
(ScaleLength) skaliert die Länge der Vektoren. Es ist zu
beachten, dass das Setzen von 'vector_field'
lediglich die Parameter Step, MinLength,
ScaleLength ändert, jedoch nicht den
tatsächlichen Anzeigemodus. Vektorfeldbilder
werden immer als Vektorfelder ausgegeben,
unabhängig davon, welcher Modus mit
set_paint
eingestellt worden ist.
Ausgabe jedes 16. Vektors der eine Länge von mindestens 2 Punkten hat. Jeder Vektor wird für die Darstellung um den Faktor 3 verlängert.
WindowHandle
(input_control) window →
(handle)
Fenster-Handle.
Mode
(input_control) string-array →
(string / integer / real)
Name des Grauwertmodus, eventuell mit Parameter.
Defaultwert: 'default'
Werteliste: '3d_plot' , 'default' , 'vector_field'
set_paint
liefert den Wert 2 (H_MSG_TRUE), falls der Parameter korrekt und
das Fenster gültig ist.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
get_paint
,
query_paint
,
disp_image
,
set_shape
,
set_rgb
,
set_color
,
set_gray
,
set_window_param
,
update_window_pose
Foundation