fill_interlacefill_interlaceFillInterlaceFillInterlacefill_interlace (Operator)
Name
fill_interlacefill_interlaceFillInterlaceFillInterlacefill_interlace — Interpolation von 2 Video-Halbbildern.
Signatur
Beschreibung
fill_interlacefill_interlaceFillInterlaceFillInterlaceFillInterlacefill_interlace 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 ModeModeModeModemodemode gibt an, ob dies für
gerade ('even'"even""even""even""even""even" bzw. 'rmeven'"rmeven""rmeven""rmeven""rmeven""rmeven") oder ungerade
('odd'"odd""odd""odd""odd""odd" bzw. 'rmodd'"rmodd""rmodd""rmodd""rmodd""rmodd") Zeilennummern gemacht werden soll.
In den Modi 'even'"even""even""even""even""even" bzw. 'odd'"odd""odd""odd""odd""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'"rmeven""rmeven""rmeven""rmeven""rmeven" bzw. 'rmodd'"rmodd""rmodd""rmodd""rmodd""rmodd"
werden gerade bzw. ungerade Zeilen entfernt (dementsprechend hat dann das
Ausgabebild nur noch die halbe Höhe des Eingabebildes).
Hat ModeModeModeModemodemode den Wert 'switch'"switch""switch""switch""switch""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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
- Automatisch parallelisiert auf Kanalebene.
- Automatisch parallelisiert auf Domainebene.
Parameter
ImageCameraImageCameraImageCameraImageCameraimageCameraimage_camera (input_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (byte / uint2)
Graubild, bestehend aus zwei Halbbildern.
ImageFilledImageFilledImageFilledImageFilledimageFilledimage_filled (output_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject * (byte / uint2)
Vollbild mit interpolierten bzw. entfernten Zeilen.
ModeModeModeModemodemode (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Angabe, ob die geraden oder ungeraden Zeilen ersetzt
bzw. entfernt werden sollen.
Defaultwert:
'odd'
"odd"
"odd"
"odd"
"odd"
"odd"
Werteliste: 'even'"even""even""even""even""even", 'odd'"odd""odd""odd""odd""odd", 'rmeven'"rmeven""rmeven""rmeven""rmeven""rmeven", 'rmodd'"rmodd""rmodd""rmodd""rmodd""rmodd", 'switch'"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_interlaceFillInterlaceFillInterlaceFillInterlacefill_interlace 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>)set_system("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
read_imageread_imageReadImageReadImageReadImageread_image,
grab_imagegrab_imageGrabImageGrabImageGrabImagegrab_image
Nachfolger
sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp,
edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing,
diff_of_gaussdiff_of_gaussDiffOfGaussDiffOfGaussDiffOfGaussdiff_of_gauss,
thresholdthresholdThresholdThresholdThresholdthreshold,
dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold,
auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThresholdauto_threshold,
mean_imagemean_imageMeanImageMeanImageMeanImagemean_image,
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter,
anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusionanisotropic_diffusion,
sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image,
median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image
Siehe auch
median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image,
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter,
crop_partcrop_partCropPartCropPartCropPartcrop_part
Modul
Foundation