paint_xldpaint_xldPaintXldPaintXld (Operator)
Name
paint_xldpaint_xldPaintXldPaintXld
— Paint XLD objects into an image.
Signature
Description
paint_xldpaint_xldPaintXldPaintXldPaintXld
paints the XLD objects XLDXLDXLDXLDXLD
of type contour or
polygon with the constant gray values GrayvalGrayvalGrayvalGrayvalgrayval
into each channel
of the background image given in ImageImageImageImageimage
and returns the result in
ImageResultImageResultImageResultImageResultimageResult
. Open contours of XLD
objects are closed and their enclosed regions are filled up. The rim of
the subpixel XLD objects is painted onto the background image using
anti-aliasing.
Filling up XLD-objects that have crossings or segments that are very close
(lying in neighboring pixels) does not work correctly and leads to artifacts.
The set_systemset_systemSetSystemSetSystemSetSystem
parameter 'neighborhood'
defines whether
diagonal neighbors are filled as well as orthogonal neighbors.
GrayvalGrayvalGrayvalGrayvalgrayval
contains the gray values for painting the XLD objects. These
gray values can either be specified for each channel once, valid for all XLD
objects, or for each XLD object separately. To define the latter, group the
channel gray values g of each XLD object and concatenate them to
a tuple according to the order of the XLD objects, e.g., for a three channel
image:
[g(channel1,xld1), g(channel2,xld1), g(channel3,xld1), g(channel1,xld2), ... ].
If the input image is of type 'direction', gray values that are not
in the value range that is valid for 'direction' images are set to
the value 255 to mark them as invalid.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
XLDXLDXLDXLDXLD
(input_object) xld(-array) →
objectHXLDHXLDHobject
XLD objects to be painted into the input image.
ImageImageImageImageimage
(input_object) (multichannel-)image →
objectHImageHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)
Image in which the xld objects are to be painted.
ImageResultImageResultImageResultImageResultimageResult
(output_object) image →
objectHImageHImageHobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)
Image containing the result.
GrayvalGrayvalGrayvalGrayvalgrayval
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Desired gray value of the xld object.
Default value: 255.0
Suggested values: 0.0, 1.0, 2.0, 5.0, 10.0, 16.0, 32.0, 64.0, 128.0, 253.0, 254.0, 255.0
Example (HDevelop)
* Paint colored xld objects into a gray image
* read and copy image to generate a three channel image
read_image(Image1,'green-dot')
copy_image(Image1,Image2)
copy_image(Image1,Image3)
compose3(Image1,Image2,Image3,Image)
* extract subpixel border
threshold_sub_pix(Image1,Border,128)
* select the circle and the arrows
select_obj(Border,circle,14)
select_obj(Border,arrows,16)
concat_obj(circle,arrows,green_dot)
* paint a green circle and white arrows (to paint all
* objects e.g. blue, pass [0,0,255] tuple for GrayVal)
paint_xld(green_dot,Image,ImageResult,[0,255,0,255,255,255])
Example (C)
/* Paint colored xld objects into a gray image */
/* read and copy image to generate a three channel image */
read_image(&Image1,"green-dot");
copy_image(Image1,&Image2);
copy_image(Image1,&Image3);
compose3(Image1,Image2,Image3,&Image);
/* extract subpixel border */
threshold_sub_pix(Image1,&Border,128);
/* select the circle and the arrows */
select_obj(Border,&circle,14);
select_obj(Border,&arrows,16);
concat_obj(circle,arrows,&green_dot);
/* paint a green circle and white arrows,
* therefore define tuple grayval:=[0,255,0,255,255,255].
* (to paint all objects e.g. blue define grayval:=[0,0,255]) */
T_paint_xld(green_dot,Image,&ImageResult,grayval);
Example (HDevelop)
* Paint colored xld objects into a gray image
* read and copy image to generate a three channel image
read_image(Image1,'green-dot')
copy_image(Image1,Image2)
copy_image(Image1,Image3)
compose3(Image1,Image2,Image3,Image)
* extract subpixel border
threshold_sub_pix(Image1,Border,128)
* select the circle and the arrows
select_obj(Border,circle,14)
select_obj(Border,arrows,16)
concat_obj(circle,arrows,green_dot)
* paint a green circle and white arrows (to paint all
* objects e.g. blue, pass [0,0,255] tuple for GrayVal)
paint_xld(green_dot,Image,ImageResult,[0,255,0,255,255,255])
Example (HDevelop)
* Paint colored xld objects into a gray image
* read and copy image to generate a three channel image
read_image(Image1,'green-dot')
copy_image(Image1,Image2)
copy_image(Image1,Image3)
compose3(Image1,Image2,Image3,Image)
* extract subpixel border
threshold_sub_pix(Image1,Border,128)
* select the circle and the arrows
select_obj(Border,circle,14)
select_obj(Border,arrows,16)
concat_obj(circle,arrows,green_dot)
* paint a green circle and white arrows (to paint all
* objects e.g. blue, pass [0,0,255] tuple for GrayVal)
paint_xld(green_dot,Image,ImageResult,[0,255,0,255,255,255])
Example (HDevelop)
* Paint colored xld objects into a gray image
* read and copy image to generate a three channel image
read_image(Image1,'green-dot')
copy_image(Image1,Image2)
copy_image(Image1,Image3)
compose3(Image1,Image2,Image3,Image)
* extract subpixel border
threshold_sub_pix(Image1,Border,128)
* select the circle and the arrows
select_obj(Border,circle,14)
select_obj(Border,arrows,16)
concat_obj(circle,arrows,green_dot)
* paint a green circle and white arrows (to paint all
* objects e.g. blue, pass [0,0,255] tuple for GrayVal)
paint_xld(green_dot,Image,ImageResult,[0,255,0,255,255,255])
Result
paint_xldpaint_xldPaintXldPaintXldPaintXld
returns 2 (H_MSG_TRUE) if all parameters are
correct. If the input is empty the behavior can be set via
set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)
.
If necessary, an exception is raised.
Possible Predecessors
read_imageread_imageReadImageReadImageReadImage
,
gen_image_constgen_image_constGenImageConstGenImageConstGenImageConst
,
gen_image_protogen_image_protoGenImageProtoGenImageProtoGenImageProto
,
gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXld
,
threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPix
Alternatives
set_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayval
,
paint_graypaint_grayPaintGrayPaintGrayPaintGray
,
paint_regionpaint_regionPaintRegionPaintRegionPaintRegion
See also
gen_image_constgen_image_constGenImageConstGenImageConstGenImageConst
Module
Foundation