Skip to content

paint_xldPaintXldPaintXldpaint_xldpaint_xld🔗

Short description🔗

paint_xldPaintXldPaintXldpaint_xldpaint_xld — Paint XLD objects into an image.

Signature🔗

paint_xld( xld XLD, image Image, out image ImageResult, number Grayval )void PaintXld( const HObject& XLD, const HObject& Image, HObject* ImageResult, const HTuple& Grayval )static void HOperatorSet.PaintXld( HObject XLD, HObject image, out HObject imageResult, HTuple grayval )def paint_xld( xld: HObject, image: HObject, grayval: MaybeSequence[Union[int, float]] ) -> HObject

Herror paint_xld( const Hobject XLD, const Hobject Image, Hobject* ImageResult, double Grayval )

Herror T_paint_xld( const Hobject XLD, const Hobject Image, Hobject* ImageResult, const Htuple Grayval )

HImage HImage::PaintXld( const HXLD& XLD, const HTuple& Grayval ) const

HImage HImage::PaintXld( const HXLD& XLD, double Grayval ) const

HImage HXLD::PaintXld( const HImage& Image, const HTuple& Grayval ) const

HImage HXLD::PaintXld( const HImage& Image, double Grayval ) const

HImage HImage.PaintXld( HXLD XLD, HTuple grayval )

HImage HImage.PaintXld( HXLD XLD, double grayval )

HImage HXLD.PaintXld( HImage image, HTuple grayval )

HImage HXLD.PaintXld( HImage image, double grayval )

Description🔗

paint_xldPaintXld paints the XLD objects XLDXLDxld of type contour or polygon with the constant gray values Grayvalgrayvalgrayval into each channel of the background image given in Imageimageimage and returns the result in ImageResultimageResultimage_result. 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 does not work correctly and leads to artifacts. The set_systemSetSystem parameter 'neighborhood'"neighborhood" defines whether diagonal neighbors are filled as well as orthogonal neighbors.

Grayvalgrayvalgrayval 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🔗

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🔗

XLDXLDxld (input_object) xld(-array) → objectHObjectHXLDHObjectHobject

XLD objects to be painted into the input image.

Imageimageimage (input_object) (multichannel-)image → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)Hobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)

Image in which the xld objects are to be painted.

ImageResultimageResultimage_result (output_object) image → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)Hobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real / complex)

Image containing the result.

Grayvalgrayvalgrayval (input_control) number(-array) → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)MaybeSequence[Union[int, float]]Htuple (double / Hlong)

Desired gray value of the xld object.

Default: 255.0255.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.00.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])
(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)\;

Result🔗

paint_xldPaintXld 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>:). If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

read_imageReadImage, gen_image_constGenImageConst, gen_image_protoGenImageProto, gen_contour_polygon_xldGenContourPolygonXld, threshold_sub_pixThresholdSubPix

Alternatives

set_grayvalSetGrayval, paint_grayPaintGray, paint_regionPaintRegion

See also

gen_image_constGenImageConst

Module🔗

Foundation