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_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

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