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 eines Bildes.

Signatur

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

Beschreibung

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image interpoliert das Bild ImageImageImageImageimageimage innerhalb der Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate und gibt das Ergebnis in ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated zurück. Die Differenz zwischen der Domäne des Bildes ImageImageImageImageimageimage und der Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate definiert die gültigen Datenpunkte, die für die Interpolation verwendet werden, wohingegen die Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate die Punkte definiert, an denen die Grauwerte des Bildes ImageImageImageImageimageimage bestimmt werden sollen. Mit dem Parameter MethodMethodMethodMethodmethodmethod wird der Interpolationsalgorithmus festgelegt. Bisher werden nur die 'thin_plate_splines'"thin_plate_splines""thin_plate_splines""thin_plate_splines""thin_plate_splines""thin_plate_splines" unterstützt. Diese Methode interpoliert die Datenpunkte auf globaler Ebene, was bedeutet, dass alle Punkte für die Interpolation verwendet werden, egal wie weit sie von einander weg liegen. Der Einfluss von entfernten Punkten korreliert mit wobei r die Entfernung zweier Punkte beschreibt. Wird das selbe Bild ImageImageImageImageimageimage und unterschiedlichen Regionen RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate interpoliert, kann der Operator create_scattered_data_interpolatorcreate_scattered_data_interpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolatorcreate_scattered_data_interpolator effizienter sein.

Die folgenden Parameter können mit GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value gesetzt werden:

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

Der Parameter 'alpha'"alpha""alpha""alpha""alpha""alpha" ist ein Glättungsfaktor. Für 'alpha'"alpha""alpha""alpha""alpha""alpha" = 0 werden alle Punkte des Bildes ImageImageImageImageimageimage exakt interpoliert. Für sehr große Werte von 'alpha'"alpha""alpha""alpha""alpha""alpha" glättet die Interpolation die Bildpunkte so, dass alle interpolierten Punkte des Ausgabebildes ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated auf einer gemeinsamen Ebene liegen.

Default: 0

Restriktion: 'alpha'"alpha""alpha""alpha""alpha""alpha" >= 0

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image arbeitet am besten mit wenigen Datenpunkten, z.B. weniger als 1000. Zum Rekonstruieren von verlorenen Bilddaten in der Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate, sollte die Anzahl der Datenpunkte entsprechend angepasst werden, z.B. indem nur die Randpixel der zu rekonstruierenden Regionen verwendet werden (siehe Beispielprogramm unten).

Ausführungsinformationen

Parameter

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

Bild, das interpoliert werden soll.

RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolateregion_interpolate (input_object)  region objectHRegionHObjectHRegionHobject

Region auf der interpoliert werden soll.

ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolatedimage_interpolated (output_object)  singlechannelimage objectHImageHObjectHImageHobject * (real)

Interpoliertes Ausgabebild.

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

Methode für die Interpolation.

Defaultwert: 'thin_plate_splines' "thin_plate_splines" "thin_plate_splines" "thin_plate_splines" "thin_plate_splines" "thin_plate_splines"

Wertevorschläge: '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*)

Namen der generischen Parameter, die angepasst werden können.

Defaultwert: []

Wertevorschläge: '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)

Werte der generischen Parameter, die angepasst werden können.

Defaultwert: []

Wertevorschläge: 0, 1.0, 10.0, 100.0

Beispiel (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)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImageinterpolate_scattered_data_image den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Alternativen

interpolate_scattered_data_points_to_imageinterpolate_scattered_data_points_to_imageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImageinterpolate_scattered_data_points_to_image

Modul

Foundation