interpolate_scattered_data_imageT_interpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image (Operator)

Name

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)

static void HOperatorSet.InterpolateScatteredDataImage(HObject image, HObject regionInterpolate, out HObject imageInterpolated, HTuple method, HTuple genParamName, 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_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image interpolates the ImageImageImageImageimageimage at the region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate and returns the result in ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated. The difference of the domain of the ImageImageImageImageimageimage and the region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate specifies the valid data points that can be used for the interpolation whereas RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate specifies the points, where the gray values of the ImageImageImageImageimageimage should be determined. With the parameter MethodMethodMethodMethodmethodmethod the interpolation algorithm is specified. So far, only the 'thin_plate_splines'"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 ImageImageImageImageimageimage is interpolated at different points in subsequent steps, the operator create_scattered_data_interpolatorcreate_scattered_data_interpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolatorcreate_scattered_data_interpolator may be more efficient.

The following parameters can be adjusted with GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name and GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value:

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

The parameter 'alpha'"alpha""alpha""alpha""alpha""alpha" is a smoothing factor. For 'alpha'"alpha""alpha""alpha""alpha""alpha" = 0, all points in the image ImageImageImageImageimageimage are interpolated exactly. With 'alpha'"alpha""alpha""alpha""alpha""alpha" getting larger, the interpolation smoothes the image points in way that all interpolated points of the result image ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated lie on a common plane. Default value is 0. Restrictions: 'alpha'"alpha""alpha""alpha""alpha""alpha" >= 0

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_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 RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_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

Parameters

ImageImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHImageHobject (byte / uint2 / real)

Image to interpolate

RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate (input_object)  region objectHRegionHObjectHRegionHobject

Region to interpolate

ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated (output_object)  singlechannelimage objectHImageHObjectHImageHobject * (real)

Interpolated image

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

Method for the interpolation

Default value: 'thin_plate_splines' "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""thin_plate_splines"

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

Names of the generic parameters that can be adjusted

Default value: []

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

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_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 value: []

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_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_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_imageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImageinterpolate_scattered_data_points_to_image

Module

Foundation