KlassenKlassenKlassenKlassen | | | | Operatoren

set_paintT_set_paintSetPaintset_paintSetPaintSetPaint (Operator)

Name

set_paintT_set_paintSetPaintset_paintSetPaintSetPaint — Festlegen des Modus für die Darstellung von Grauwerten.

Signatur

set_paint( : : WindowHandle, Mode : )

Herror T_set_paint(const Htuple WindowHandle, const Htuple Mode)

Herror set_paint(const HTuple& WindowHandle, const HTuple& Mode)

void HWindow::SetPaint(const HTuple& Mode) const

void SetPaint(const HTuple& WindowHandle, const HTuple& Mode)

void HWindow::SetPaint(const HTuple& Mode) const

void HOperatorSetX.SetPaint(
[in] VARIANT WindowHandle, [in] VARIANT Mode)

void HWindowX.SetPaint([in] VARIANT Mode)

static void HOperatorSet.SetPaint(HTuple windowHandle, HTuple mode)

void HWindow.SetPaint(HTuple mode)

Beschreibung

set_paintset_paintSetPaintset_paintSetPaintSetPaint setzt den Modus des Ausgabefensters für die Darstellung von Grauwerten (ein- oder mehrkanalig), der von disp_objdisp_objDispObjdisp_objDispObjDispObj, disp_imagedisp_imageDispImagedisp_imageDispImageDispImage und disp_colordisp_colorDispColordisp_colorDispColorDispColor 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).

Die Darstellung von Grauwerten wird von den Eigenschaften der Hardware bestimmt. So erfolgt auf einem Bildschirm mit einer Bildebene bis sieben Bildebenen nur eine Binärkodierung der Grauwertdaten. Stehen acht oder mehr Bildebenen zur Verfügung, so wird eine gute Auflösung erzielt. Für binäre Darstellung stehen Techniken mit Dither-Matrix (schnell aber schlechte Auflösung), minimalem Fehler (gut aber langsam) und Schwellenwertbildung zur Verfügung. Bei der Schwellenwertoperation kann der Schwellenwert als 2. Parameterwert übergeben werden (insgesamt wird also ein Tupel aus der Zeichenreihe 'threshold' und dem Schwellenwert, z.B. 100 verwendet: ['threshold',100]).

Bei acht Bildebenen werden ca. 200 Graustufen für die Darstellung verwendet. Es ist hier aber auch möglich, binäre Darstellungen zu verwenden.

Eine weitere Art der Grauwertdarstellung ist das Histogramm ('histogram'). Die zusätzlichen Parameterwerte Row (2. Parameterwert) und Column (3. Parameterwert) geben die Zeile bzw. Spalte des Mittelpunktes des Histogramms (für die Positionierung) an. Der Skalierungsfaktor Scale (4. Parameterwert) gibt die Größe des Histogramms an. Dabei bedeutet 1, dass 256 Werte unterschieden werden; bei 2 werden 128 Werte unterschieden, bei 3 werden 64 Werte unterschieden, usw. Die Übergabe der 4 Werte erfolgt mit dem einen Parameter ModeModeModeModeModemode, indem die Werte als ein Tupel verwendet werden; z.B.: ['histogram',256,256,1]. Wird nur der erste Wert übergeben ('histogram'), dann wird für die Positionierung die Voreinstellung, bzw. der letzte gesetzte Wert verwendet. Für die Berechnung des Histogramms siehe auch gray_histogray_histoGrayHistogray_histoGrayHistoGrayHisto. Für die Darstellung von Histogrammen gelten die gleichen Parameter wie für Operatoren der Art disp_regiondisp_regionDispRegiondisp_regionDispRegionDispRegion etc. Dies sind z.B.: set_colorset_colorSetColorset_colorSetColorSetColor, set_drawset_drawSetDrawset_drawSetDrawSetDraw, etc.

Weiterhin ist die Darstellung der relativen Häufigkeit der Anzahl der Zusammenhangskomponenten (der Schwellenwertoperation) möglich ('component_histogram'). Für die Berechnung des Komponentenhistogramms siehe shape_histo_allshape_histo_allShapeHistoAllshape_histo_allShapeHistoAllShapeHistoAll. Die Art der Positionierung und der Darstellung entspricht dem Modus 'histogram'.

Bei der Verwendung von 'mean' werden die Regionen der Objekte mit dem mittleren Grauwert gezeichnet.

Die Parameterwerte 'row' und 'column' ermöglichen es, Zeilen bzw. Spalten eines Grauwertbildes darzustellen. Die Position (Zeilen- Spaltenindex) wird mit dem 2. Parameterwert angegeben. Mit dem 3. Parameterwert wird der Skalierungsfaktor angegeben. Dieser wird in Prozentwerten festgelegt. Dabei entspricht 100 der Auflösung von einem Pixel pro Graustufe. 50 entspricht z.B. 0.5 Pixel pro Graustufe.

Graubilder können auch als Gebirge aufgefasst werden. Hierzu steht ein Höhenplot ('contourline') und eine pseudo-3D-Darstellung ('3d_plot_lines' und '3d_plot_hidden_lines') zur Verfügung. Falls Ihre Grafikkarte OpenGL unterstützt, kann auch '3d_plot' für eine Darstellung höherer Qualität ausgewählt werden. Diese Darstellung erlaubt auch interaktives Betrachten des Höhenmodells, was durch den Operator update_window_poseupdate_window_poseUpdateWindowPoseupdate_window_poseUpdateWindowPoseUpdateWindowPose unterstützt wird.

Dreikanalige Bilder werden als RGB-Daten interpretiert. Es stehen hierfür drei verschiedene Darstellungsmodi zur Verfügung, wobei zwei optional mit dem Floyd-Steinberg-Verfahren optimiert werden können.

Vektorfeldbilder werden als Vektorfelder ausgegeben ('vector_field').

Alle verfügbaren Modi können mit dem Operator query_paintquery_paintQueryPaintquery_paintQueryPaintQueryPaint abgefragt werden.

Bei den Modi, die mehr als einen Wert benötigen, sind folgende Techniken möglich:

Ist der Modus 'default' gewählt, dann muss für die Ausgabe von 2- und 3-kanaligen Bildern kein Aufruf von set_paintset_paintSetPaintset_paintSetPaintSetPaint 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_partset_partSetPartset_partSetPartSetPart, set_part_styleset_part_styleSetPartStyleset_part_styleSetPartStyleSetPartStyle, set_lutset_lutSetLutset_lutSetLutSetLut und set_lut_styleset_lut_styleSetLutStyleset_lut_styleSetLutStyleSetLutStyle. Bei einigen Ausgabemodi von set_paintset_paintSetPaintset_paintSetPaintSetPaint werden die Grauwerte grafisch dargestellt (z.B. 'histogram','contourline','3d_plot_lines', etc.). Dies hat zur Folge, dass auch Parameter, die mit set_colorset_colorSetColorset_colorSetColorSetColor, set_rgbset_rgbSetRgbset_rgbSetRgbSetRgb,set_hsiset_hsiSetHsiset_hsiSetHsiSetHsi, set_pixelset_pixelSetPixelset_pixelSetPixelSetPixel, set_shapeset_shapeSetShapeset_shapeSetShapeSetShape, set_line_widthset_line_widthSetLineWidthset_line_widthSetLineWidthSetLineWidth und set_insertset_insertSetInsertset_insertSetInsertSetInsert bestimmt wurden, Einfluss auf die Darstellung haben. Dies kann z.B. bei set_shape('convex')set_shape("convex")SetShape("convex")set_shape("convex")SetShape("convex")SetShape("convex") und set_paint(WindowHandle,'histogram')set_paint(WindowHandle,"histogram")SetPaint(WindowHandle,"histogram")set_paint(WindowHandle,"histogram")SetPaint(WindowHandle,"histogram")SetPaint(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:

Achtung

Parallelisierung

Parameter

WindowHandleWindowHandleWindowHandleWindowHandleWindowHandlewindowHandle (input_control)  window HWindow, HTupleHTupleHTupleHWindowX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Fenster-Handle.

ModeModeModeModeModemode (input_control)  string-array HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Name des Grauwertmodus, eventuell mit Parameter.

Defaultwert: 'default' "default" "default" "default" "default" "default"

Werteliste: '3d_plot'"3d_plot""3d_plot""3d_plot""3d_plot""3d_plot", '3d_plot_hidden_lines'"3d_plot_hidden_lines""3d_plot_hidden_lines""3d_plot_hidden_lines""3d_plot_hidden_lines""3d_plot_hidden_lines", '3d_plot_lines'"3d_plot_lines""3d_plot_lines""3d_plot_lines""3d_plot_lines""3d_plot_lines", '3d_plot_point'"3d_plot_point""3d_plot_point""3d_plot_point""3d_plot_point""3d_plot_point", 'column'"column""column""column""column""column", 'contourline'"contourline""contourline""contourline""contourline""contourline", 'default'"default""default""default""default""default", 'histogram'"histogram""histogram""histogram""histogram""histogram", 'row'"row""row""row""row""row", 'vector_field'"vector_field""vector_field""vector_field""vector_field""vector_field"

Beispiel (HDevelop)

read_image(Image,'fabrik')
open_window(0,0,-1,-1,'root','visible','',WindowHandle)
query_paint(WindowHandle,Modi)
fwrite_string(FileHandle,['available gray value modes: ',Modi])
fnew_line(FileHandle)
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_color(WindowHandle,'red')
set_draw(WindowHandle,'margin')
set_paint(WindowHandle,'histogram')
disp_image(Image,WindowHandle)
set_color(WindowHandle,'blue')
set_paint(WindowHandle,['histogram',100,100,3])
disp_image(Image,WindowHandle)
set_color(WindowHandle,'yellow')
set_paint(WindowHandle,['row',100])
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_paint(WindowHandle,['contourline',10,1])
disp_image(Image,WindowHandle)
set_lut(WindowHandle,'color')
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_part(WindowHandle,100,100,300,300)
set_paint(WindowHandle,'3d_plot')
disp_image(Image,WindowHandle)

Beispiel (C)

Htuple Modi,TmpTuple1,TmpTuple2,TmpTuple3, WindowHandleTuple ;
create_tuple(&TmpTuple1,1) ;
create_tuple(&TmpTuple2,2) ;
create_tuple(&TmpTuple3,3) ;
create_tuple(&WindowHandleTuple,1) ;

read_image(&Image,"fabrik") ;
open_window(0,0,-1,-1,"root","visible","",&WindowHandle) ;
T_query_paint(WindowHandleTuple,Modi) ;
T_fwrite_string(FileHandle,Modi) ;
fnew_line(FileHandle) ;
disp_image(Image,WindowHandle) ;
get_mbutton(WindowHandle,NULL,NULL,NULL) ;

set_s(TmpTuple1,"red",0) ;
set_i(WindowHandleTuple,WindowHandle,0);
T_set_color(WindowHandleTuple,TmpTuple1) ;
set_draw(WindowHandle,"margin") ;
set_s(TmpTuple1,"histogram",0) ;
T_set_paint(WindowHandleTuple,TmpTuple1) ;
disp_image(Image,WindowHandle) ;
set_s(TmpTuple1,"blue",0) ;
T_set_color(WindowHandleTuple,TmpTuple1) ;

set_s(TmpTuple3,"histogram",0) ;
set_s(TmpTuple3,100,1) ;
set_s(TmpTuple3,100,2) ;
T_set_paint(WindowHandleTuple,TmpTuple3) ;
disp_image(Image,WindowHandle) ;
set_s(TmpTuple1,"yellow",0) ;
T_set_color(WindowHandleTuple,TmpTuple1) ;

set_s(TmpTuple2,"line",0) ;
set_s(TmpTuple2,100,1) ;
T_set_paint(WindowHandleTuple,TmpTuple3) ;
disp_image(Image,WindowHandle) ;
get_mbutton(WindowHandle,NULL,NULL,NULL) ;
clear_window(WindowHandle) ;

set_s(TmpTuple3,"contourline",0) ;
set_s(TmpTuple3,10,1) ;
set_s(TmpTuple3,1,2) ;
T_set_paint(WindowHandleTuple,TmpTuple3) ;
disp_image(Image,WindowHandle) ;
set_lut(WindowHandle,"color") ;
get_mbutton(WindowHandle,NULL,NULL,NULL) ;
clear_window(WindowHandle) ;
set_part(WindowHandle,100,100,300,300) ;
set_s(TmpTuple1,"3d_plot",0) ;
T_set_paint(WindowHandleTuple,TmpTuple1) ;
disp_image(Image,WindowHandle) ;

Beispiel (HDevelop)

read_image(Image,'fabrik')
open_window(0,0,-1,-1,'root','visible','',WindowHandle)
query_paint(WindowHandle,Modi)
fwrite_string(FileHandle,['available gray value modes: ',Modi])
fnew_line(FileHandle)
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_color(WindowHandle,'red')
set_draw(WindowHandle,'margin')
set_paint(WindowHandle,'histogram')
disp_image(Image,WindowHandle)
set_color(WindowHandle,'blue')
set_paint(WindowHandle,['histogram',100,100,3])
disp_image(Image,WindowHandle)
set_color(WindowHandle,'yellow')
set_paint(WindowHandle,['row',100])
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_paint(WindowHandle,['contourline',10,1])
disp_image(Image,WindowHandle)
set_lut(WindowHandle,'color')
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_part(WindowHandle,100,100,300,300)
set_paint(WindowHandle,'3d_plot')
disp_image(Image,WindowHandle)

Beispiel (HDevelop)

read_image(Image,'fabrik')
open_window(0,0,-1,-1,'root','visible','',WindowHandle)
query_paint(WindowHandle,Modi)
fwrite_string(FileHandle,['available gray value modes: ',Modi])
fnew_line(FileHandle)
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_color(WindowHandle,'red')
set_draw(WindowHandle,'margin')
set_paint(WindowHandle,'histogram')
disp_image(Image,WindowHandle)
set_color(WindowHandle,'blue')
set_paint(WindowHandle,['histogram',100,100,3])
disp_image(Image,WindowHandle)
set_color(WindowHandle,'yellow')
set_paint(WindowHandle,['row',100])
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_paint(WindowHandle,['contourline',10,1])
disp_image(Image,WindowHandle)
set_lut(WindowHandle,'color')
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_part(WindowHandle,100,100,300,300)
set_paint(WindowHandle,'3d_plot')
disp_image(Image,WindowHandle)

Beispiel (HDevelop)

read_image(Image,'fabrik')
open_window(0,0,-1,-1,'root','visible','',WindowHandle)
query_paint(WindowHandle,Modi)
fwrite_string(FileHandle,['available gray value modes: ',Modi])
fnew_line(FileHandle)
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_color(WindowHandle,'red')
set_draw(WindowHandle,'margin')
set_paint(WindowHandle,'histogram')
disp_image(Image,WindowHandle)
set_color(WindowHandle,'blue')
set_paint(WindowHandle,['histogram',100,100,3])
disp_image(Image,WindowHandle)
set_color(WindowHandle,'yellow')
set_paint(WindowHandle,['row',100])
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_paint(WindowHandle,['contourline',10,1])
disp_image(Image,WindowHandle)
set_lut(WindowHandle,'color')
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_part(WindowHandle,100,100,300,300)
set_paint(WindowHandle,'3d_plot')
disp_image(Image,WindowHandle)

Beispiel (HDevelop)

read_image(Image,'fabrik')
open_window(0,0,-1,-1,'root','visible','',WindowHandle)
query_paint(WindowHandle,Modi)
fwrite_string(FileHandle,['available gray value modes: ',Modi])
fnew_line(FileHandle)
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
set_color(WindowHandle,'red')
set_draw(WindowHandle,'margin')
set_paint(WindowHandle,'histogram')
disp_image(Image,WindowHandle)
set_color(WindowHandle,'blue')
set_paint(WindowHandle,['histogram',100,100,3])
disp_image(Image,WindowHandle)
set_color(WindowHandle,'yellow')
set_paint(WindowHandle,['row',100])
disp_image(Image,WindowHandle)
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_paint(WindowHandle,['contourline',10,1])
disp_image(Image,WindowHandle)
set_lut(WindowHandle,'color')
get_mbutton(WindowHandle,_,_,_)
clear_window(WindowHandle)
set_part(WindowHandle,100,100,300,300)
set_paint(WindowHandle,'3d_plot')
disp_image(Image,WindowHandle)

Ergebnis

set_paintset_paintSetPaintset_paintSetPaintSetPaint liefert den Wert 2 (H_MSG_TRUE), falls der Parameter korrekt und das Fenster gültig ist. Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

query_paintquery_paintQueryPaintquery_paintQueryPaintQueryPaint, get_paintget_paintGetPaintget_paintGetPaintGetPaint

Nachfolger

disp_imagedisp_imageDispImagedisp_imageDispImageDispImage

Siehe auch

get_paintget_paintGetPaintget_paintGetPaintGetPaint, query_paintquery_paintQueryPaintquery_paintQueryPaintQueryPaint, disp_imagedisp_imageDispImagedisp_imageDispImageDispImage, set_shapeset_shapeSetShapeset_shapeSetShapeSetShape, set_rgbset_rgbSetRgbset_rgbSetRgbSetRgb, set_colorset_colorSetColorset_colorSetColorSetColor, set_grayset_graySetGrayset_graySetGraySetGray, set_window_paramset_window_paramSetWindowParamset_window_paramSetWindowParamSetWindowParam, update_window_poseupdate_window_poseUpdateWindowPoseupdate_window_poseUpdateWindowPoseUpdateWindowPose

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren