fill_interlacefill_interlaceFillInterlaceFillInterlace (Operator)

Name

fill_interlacefill_interlaceFillInterlaceFillInterlace — Interpolation von 2 Video-Halbbildern.

Signatur

fill_interlace(ImageCamera : ImageFilled : Mode : )

Herror fill_interlace(const Hobject ImageCamera, Hobject* ImageFilled, const char* Mode)

Herror T_fill_interlace(const Hobject ImageCamera, Hobject* ImageFilled, const Htuple Mode)

void FillInterlace(const HObject& ImageCamera, HObject* ImageFilled, const HTuple& Mode)

HImage HImage::FillInterlace(const HString& Mode) const

HImage HImage::FillInterlace(const char* Mode) const

HImage HImage::FillInterlace(const wchar_t* Mode) const   (Nur Windows)

static void HOperatorSet.FillInterlace(HObject imageCamera, out HObject imageFilled, HTuple mode)

HImage HImage.FillInterlace(string mode)

Beschreibung

fill_interlacefill_interlaceFillInterlaceFillInterlaceFillInterlace berechnet aus einem Videobild, das aus zwei Halbbildern zusammengesetzt ist, ein interpoliertes Vollbild bzw. entfernt gerade oder ungerade Bildzeilen. Wird ein Bild mit einer Videokamera aufgenommen, so besteht dies aus zwei Halbbildern, die mit einem zeitlichen Abstand aufgenommen wurden, aber in der digitalen Form in einem gemeinsamen Bild abgelegt sind. Hierdurch können starke Fehler bei der weiteren Verarbeitung entstehen. Um diese Fehler etwas zu mildern, wird das Videobild modifiziert. Dabei wird entweder jede zweite Zeile neu berechnet oder entfernt. Der Parameter ModeModeModeModemode gibt an, ob dies für gerade ('even' bzw. 'rmeven') oder ungerade ('odd' bzw. 'rmodd') Zeilennummern gemacht werden soll. In den Modi 'even' bzw. 'odd' werden die Grauwerte in den erzeugten Zeilen als Mittelwert aus dem direkten Nachbarn oberhalb bzw. unterhalb des aktuellen Punktes berechnet. In den Modi 'rmeven' bzw. 'rmodd' werden gerade bzw. ungerade Zeilen entfernt (dementsprechend hat dann das Ausgabebild nur noch die halbe Höhe des Eingabebildes). Hat ModeModeModeModemode den Wert 'switch', dann werden gerade und ungerade Zeilen vertauscht.

Das Konzept der Glättungsfilter ist in der Einleitung zum Kapitel Filter / Glättung beschrieben.

Achtung

Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.

Ausführungsinformationen

Parameter

ImageCameraImageCameraImageCameraImageCameraimageCamera (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / uint2)

Graubild, bestehend aus zwei Halbbildern.

ImageFilledImageFilledImageFilledImageFilledimageFilled (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / uint2)

Vollbild mit interpolierten bzw. entfernten Zeilen.

ModeModeModeModemode (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Angabe, ob die geraden oder ungeraden Zeilen ersetzt bzw. entfernt werden sollen.

Defaultwert: 'odd' "odd" "odd" "odd" "odd"

Werteliste: 'even'"even""even""even""even", 'odd'"odd""odd""odd""odd", 'rmeven'"rmeven""rmeven""rmeven""rmeven", 'rmodd'"rmodd""rmodd""rmodd""rmodd", 'switch'"switch""switch""switch""switch"

Beispiel (HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

Beispiel (C)

read_image(&Image,"video_image");
fill_interlace(Image,&New,"odd");
sobel_amp(New,&Sobel,"sum_abs",3);

Beispiel (HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

Beispiel (HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

Beispiel (HDevelop)

read_image(Image,'video_image')
fill_interlace(Image,New,'odd')
sobel_amp(New,Sobel,'sum_abs',3)

Komplexität

Pro Bildpunkt: O(2).

Ergebnis

Sind die Parameterwerte korrekt, dann liefert fill_interlacefill_interlaceFillInterlaceFillInterlaceFillInterlace den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_imageread_imageReadImageReadImageReadImage, grab_imagegrab_imageGrabImageGrabImageGrabImage

Nachfolger

sobel_ampsobel_ampSobelAmpSobelAmpSobelAmp, edges_imageedges_imageEdgesImageEdgesImageEdgesImage, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing, diff_of_gaussdiff_of_gaussDiffOfGaussDiffOfGaussDiffOfGauss, thresholdthresholdThresholdThresholdThreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold, auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThreshold, mean_imagemean_imageMeanImageMeanImageMeanImage, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter, anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusion, sigma_imagesigma_imageSigmaImageSigmaImageSigmaImage, median_imagemedian_imageMedianImageMedianImageMedianImage

Siehe auch

median_imagemedian_imageMedianImageMedianImageMedianImage, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter, crop_partcrop_partCropPartCropPartCropPart

Modul

Foundation