Operator Reference

interpolate_scattered_data_imageT_interpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image (Operator)

interpolate_scattered_data_imageT_interpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image — Interpolation of an image.

Signature

interpolate_scattered_data_image(Image, RegionInterpolate : ImageInterpolated : Method, GenParamName, GenParamValue : )

Herror T_interpolate_scattered_data_image(const Hobject Image, const Hobject RegionInterpolate, Hobject* ImageInterpolated, const Htuple Method, const Htuple GenParamName, const Htuple GenParamValue)

void InterpolateScatteredDataImage(const HObject& Image, const HObject& RegionInterpolate, HObject* ImageInterpolated, const HTuple& Method, const HTuple& GenParamName, const HTuple& GenParamValue)

def interpolate_scattered_data_image(image: HObject, region_interpolate: HObject, method: str, gen_param_name: Sequence[str], gen_param_value: Sequence[Union[str, int, float]]) -> HObject

Description

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image interpolates the ImageImageImageimageimage at the region RegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate and returns the result in ImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated. The difference of the domain of the ImageImageImageimageimage and the region RegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate specifies the valid data points that can be used for the interpolation whereas RegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate specifies the points, where the gray values of the ImageImageImageimageimage should be determined. With the parameter MethodMethodMethodmethodmethod the interpolation algorithm is specified. So far, only the 'thin_plate_splines'"thin_plate_splines""thin_plate_splines""thin_plate_splines""thin_plate_splines" are supported. This method interpolates on a global scale, which means that all points are regarded for the interpolation, no matter how far away they are. The influence of far points is correlated to where r defines the distance of two points. If the same ImageImageImageimageimage is interpolated at different points in subsequent steps, the operator create_scattered_data_interpolatorcreate_scattered_data_interpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolatorcreate_scattered_data_interpolator may be more efficient.

The following parameters can be adjusted with GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name and GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value:

'alpha'"alpha""alpha""alpha""alpha":

The parameter 'alpha'"alpha""alpha""alpha""alpha" is a smoothing factor. For 'alpha'"alpha""alpha""alpha""alpha" = 0, all points in the image ImageImageImageimageimage are interpolated exactly. With 'alpha'"alpha""alpha""alpha""alpha" getting larger, the interpolation smoothes the image points in way that all interpolated points of the result image ImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated lie on a common plane.

Default: is 0

Restriction: 'alpha'"alpha""alpha""alpha""alpha" >= 0

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image is best used with very few data points, e.g, less than 1000. In order to reconstruct destroyed image data in the region RegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate, the data points should be reduced to an appropriate number, e.g., by only using the border pixels of the hole regions. An example program is shown below.

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

ImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (byte / uint2 / real)

Image to interpolate

RegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate (input_object)  region objectHRegionHObjectHObjectHobject

Region to interpolate

ImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated (output_object)  singlechannelimage objectHImageHObjectHObjectHobject * (real)

Interpolated image

MethodMethodMethodmethodmethod (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Method for the interpolation

Default: 'thin_plate_splines' "thin_plate_splines" "thin_plate_splines" "thin_plate_splines" "thin_plate_splines"

Suggested values: 'thin_plate_splines'"thin_plate_splines""thin_plate_splines""thin_plate_splines""thin_plate_splines"

GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name-array HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Names of the generic parameters that can be adjusted

Default: []

Suggested values: 'alpha'"alpha""alpha""alpha""alpha"

GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value-array HTupleSequence[Union[str, int, float]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Values of the generic parameters that can be adjusted

Default: []

Suggested values: 0, 1.0, 10.0, 100.0

Example (HDevelop)

* This example program shows how to use the scattered data interpolator
* to fill holes in an image
gen_image_surface_second_order (ImageData, 'real', 1, 1, 0, 0, 0, 1, \
                                24, 24, 48, 48)
gen_circle (Circle, 12, 12, 6)
difference (ImageData, Circle, Region)
reduce_domain (ImageData, Region, ImageReduced)
dev_clear_window ()
dev_display (ImageReduced)
stop()
*
* Select only border pixels for the interpolation
dilation_circle (Circle, CircleDilation, 1.5)
intersection (CircleDilation, Region, RegionBorderData)
dev_clear_window ()
dev_display (ImageReduced)
dev_display (RegionBorderData)
stop()
*
* Interpolate pixels
reduce_domain (ImageData, RegionBorderData, ImageReducedBorder)
interpolate_scattered_data_image (ImageReducedBorder, Circle, \
                                  ImageInterpolated, \
                                  'thin_plate_splines', [], [])
paint_gray (ImageInterpolated, ImageData, ImageFilled)
dev_clear_window ()
dev_display (ImageFilled)

Result

If the parameters are valid, the operator interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image returns the value 2 ( H_MSG_TRUE) . If necessary, an exception is raised.

Alternatives

interpolate_scattered_data_points_to_imageinterpolate_scattered_data_points_to_imageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImageinterpolate_scattered_data_points_to_image

Module

Foundation