interpolate_scattered_data_imageT_interpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImage (Operator)

Name

interpolate_scattered_data_imageT_interpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImage — 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)

Description

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImage interpolates the ImageImageImageImageimage at the region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate and returns the result in ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolated. The difference of the domain of the ImageImageImageImageimage and the region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate specifies the valid data points that can be used for the interpolation whereas RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate 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_interpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolator may be more efficient.

The following parameters can be adjusted with GenParamNameGenParamNameGenParamNameGenParamNamegenParamName and GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue:

'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 ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolated lie on a common plane. Default value is 0. Restrictions: 'alpha'"alpha""alpha""alpha""alpha" >= 0

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImage is best used with very few data points, e.g, less than 1000. In order to reconstruct destroyed image data in the region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate, 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 objectHImageHImageHobject (byte / uint2 / real)

Image to interpolate

RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate (input_object)  region objectHRegionHRegionHobject

Region to interpolate

ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolated (output_object)  singlechannelimage objectHImageHImageHobject * (real)

Interpolated image

MethodMethodMethodMethodmethod (input_control)  string HTupleHTupleHtuple (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"

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

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Names of the generic parameters that can be adjusted

Default value: []

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

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value-array HTupleHTupleHtuple (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_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImage returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

Alternatives

interpolate_scattered_data_points_to_imageinterpolate_scattered_data_points_to_imageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImage

Module

Foundation