ClassesClassesClassesClasses | | | | Operators

set_paintT_set_paintSetPaintset_paintSetPaintSetPaint (Operator)

Name

set_paintT_set_paintSetPaintset_paintSetPaintSetPaint — Define the gray value output mode.

Signature

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)

Description

set_paintset_paintSetPaintset_paintSetPaintSetPaint defines the output mode for gray value display (single- or multichannel) in the window. The mode is used by disp_objdisp_objDispObjdisp_objDispObjDispObj, disp_imagedisp_imageDispImagedisp_imageDispImageDispImage, and disp_colordisp_colorDispColordisp_colorDispColorDispColor.

This page describes the different modes that can be used for gray value output. It should be noted that the mode 'default' is the most suitable in almost all cases.

The hardware characteristics determine how gray values can be displayed. On a screen with one to seven bit planes, only binary data can be displayed. On screens with at least eight bit planes, it is possible to display multiple gray values. For binary displays, HALCON includes algorithms using a dithering matrix (fast, but low resolution), minimal error (good, but slow) and thresholding. Using the thresholding algorithm, the threshold can be passed as a second parameter (a tuple with the string 'threshold' and the actual threshold, e.g.: ['theshold', 100]).

Displays with eight bit planes use approximately 200 gray values for output. Of course it is still possible to use a binary display on those displays.

A different way to display gray values is the histogram (mode: 'histogram'). This mode has two additional parameter values: Row (second value) and column (third value). They denote row and column of the histogram center for positioning on the screen. The scale factor (fourth value) determines the histogram size: a scale factor of 1 distinguishes 256 gray values, 2 distinguishes 128 gray values, 3 distinguishes 64 gray values, and so on. The four values are passed as a tuple, e.g. ['histogram',256,256,1]. If only the first value is passed ('histogram'), the other values are set to defaults or the last values, respectively. For histogram computation see gray_histogray_histoGrayHistogray_histoGrayHistoGrayHisto. Histogram output honors the same parameters as operators like disp_regiondisp_regionDispRegiondisp_regionDispRegionDispRegion etc. (e.g. set_colorset_colorSetColorset_colorSetColorSetColor, set_drawset_drawSetDrawset_drawSetDrawSetDraw, etc.)

Yet another mode is the display of relative frequencies of the number of connected components (”component_histogram”). For information on computing the component histogram see shape_histo_allshape_histo_allShapeHistoAllshape_histo_allShapeHistoAllShapeHistoAll. Positioning and resolution are exactly as in the mode 'histogram'.

In mode 'mean', all object regions are displayed in their mean gray value.

The modes 'row' and 'column' allow the display of lines or columns, respecively. The position (row and column index) is passed with the second parameter value. The third parameter value is the scale factor in percent (100 means 1 pixel per gray value, 50 means one pixel per two gray values).

Gray images can also be interpreted as 3D data, depending on the gray value. To view these 3D plots, select the modes 'contourline', '3d_plot_lines' or '3d_plot_hidden_lines'. If your graphics card supports OpenGL, you can also choose '3d_plot' for a high quality plot that is well suited for interactive display (see update_window_poseupdate_window_poseUpdateWindowPoseupdate_window_poseUpdateWindowPoseUpdateWindowPose on how to make the display interactive).

Three-channel images are interpreted as RGB images. They can be displayed in three different modes. Two of them can be optimized by Floyd-Steinberg dithering.

Vector field images can be viewed as 'vector_field'.

All available painting modes can be queried with query_paintquery_paintQueryPaintquery_paintQueryPaintQueryPaint.

Parameters for modes that need more than one parameter can be passed the following ways:

If the current mode is 'default', HALCON chooses a suitable algorithm for the output of 2- and 3-channel images. No set_paintset_paintSetPaintset_paintSetPaintSetPaint call is necessary in this case.

Apart from set_paintset_paintSetPaintset_paintSetPaintSetPaint there are other operators that affect the output of gray values. The most important of them are set_partset_partSetPartset_partSetPartSetPart, set_part_styleset_part_styleSetPartStyleset_part_styleSetPartStyleSetPartStyle,set_lutset_lutSetLutset_lutSetLutSetLut and set_lut_styleset_lut_styleSetLutStyleset_lut_styleSetLutStyleSetLutStyle. Some output modes display gray values using region output (e.g. 'histogram','contourline','3d_plot_lines', etc.). In these modes, parameters set with 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 and set_insertset_insertSetInsertset_insertSetInsertSetInsert influence gray value output. This can lead to unexpected results when using set_shape('convex')set_shape("convex")SetShape("convex")set_shape("convex")SetShape("convex")SetShape("convex") and set_paint(WindowHandle,'histogram')set_paint(WindowHandle,"histogram")SetPaint(WindowHandle,"histogram")set_paint(WindowHandle,"histogram")SetPaint(WindowHandle,"histogram")SetPaint(WindowHandle,"histogram"). Here, the convex hull of the histogram is displayed.

Modes:

Attention

Parallelization

Parameters

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

Window identifier.

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)

Output mode. Additional parameters possible.

Default value: 'default' "default" "default" "default" "default" "default"

List of values: '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"

Example (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)

Example (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) ;

Example (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)

Example (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)

Example (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)

Example (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)

Result

set_paintset_paintSetPaintset_paintSetPaintSetPaint returns 2 (H_MSG_TRUE) if the parameter is correct and the window is valid. Otherwise an exception is raised.

Possible Predecessors

query_paintquery_paintQueryPaintquery_paintQueryPaintQueryPaint, get_paintget_paintGetPaintget_paintGetPaintGetPaint

Possible Successors

disp_imagedisp_imageDispImagedisp_imageDispImageDispImage

See also

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

Module

Foundation


ClassesClassesClassesClasses | | | | Operators