run_bg_estiT_run_bg_estiRunBgEstiRunBgEsti (Operator)

Name

run_bg_estiT_run_bg_estiRunBgEstiRunBgEsti — Schätzt den Hintergrund und liefert Vordergrund-Region.

Signatur

run_bg_esti(PresentImage : ForegroundRegion : BgEstiHandle : )

Herror T_run_bg_esti(const Hobject PresentImage, Hobject* ForegroundRegion, const Htuple BgEstiHandle)

void RunBgEsti(const HObject& PresentImage, HObject* ForegroundRegion, const HTuple& BgEstiHandle)

HRegion HImage::RunBgEsti(const HBgEsti& BgEstiHandle) const

HRegion HBgEsti::RunBgEsti(const HImage& PresentImage) const

static void HOperatorSet.RunBgEsti(HObject presentImage, out HObject foregroundRegion, HTuple bgEstiHandle)

HRegion HImage.RunBgEsti(HBgEsti bgEstiHandle)

HRegion HBgEsti.RunBgEsti(HImage presentImage)

Beschreibung

run_bg_estirun_bg_estiRunBgEstiRunBgEstiRunBgEsti adaptiert mit einem Kalman-Filter das im angegebenen Datensatz liegende Hintergrundbild und liefert eine Region des Vordergrundes (Bereich bewegter Objekte) zurück.

Es wird für jedes Pixel anhand der Daten im aktuellen Datensatz eine Vorhersage des Grauwertes bestimmt und diese dann mit dem Wert im aktuellen Bild (PresentImagePresentImagePresentImagePresentImagepresentImage) verglichen. Mit dem Schwellenwert (fest oder adaptiv, siehe create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsti) werden die Pixel in Vordergrund oder Hintergrund klassifiziert.

Es werden nur einkanalige Bilder verarbeitet, daher muss der Hintergrund für jeden Kanal einzeln adaptiert werden. Hierzu müssen mehrere Datensätze mit create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsti aufgebaut werden.

Empfehlenswert ist es, den Hintergrundschätzer nur auf der Hälfte oder sogar nur auf einem Viertel der Originalbildgröße anzuwenden. Hierzu muss das Originalbild zunächst mit zoom_image_factorzoom_image_factorZoomImageFactorZoomImageFactorZoomImageFactor verkleinert werden (dies gilt auch für das Initialisierungsbild bei create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsti). Der Vorteil ist auf der einen Seite die reduzierte Laufzeit und auf der anderen Seite ist das Bild durch die Verkleinerung Tiefpass-gefiltert. Dadurch sind hochfrequente Störungen, wie Kamerarauschen herausgefiltert und stören somit auch nicht bei der Adaption des Hintergrundbildes. Es ist somit möglich die Schwelle (siehe create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsti) geringer zu wählen. Die von run_bg_estirun_bg_estiRunBgEstiRunBgEstiRunBgEsti zurückgelieferte ForegroundRegionForegroundRegionForegroundRegionForegroundRegionforegroundRegion muss dann natürlich für die Auswertung (Bereiche mit Bewegung) mit zoom_regionzoom_regionZoomRegionZoomRegionZoomRegion wieder um den gleichen Faktor vergrößert werden.

Achtung

Das übergebene Bild (PresentImagePresentImagePresentImagePresentImagepresentImage) muss von gleichem Typ und gleicher Größe sein, wie das im aktuellen Datensatz abgelegte Hintergrundbild (festgelegt mit create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsti).

Ausführungsinformationen

Parameter

PresentImagePresentImagePresentImagePresentImagepresentImage (input_object)  singlechannelimage objectHImageHImageHobject (byte / real)

Aktuelles Bild.

ForegroundRegionForegroundRegionForegroundRegionForegroundRegionforegroundRegion (output_object)  region objectHRegionHRegionHobject *

Region der als Vordergrund detektierten Bereiche.

BgEstiHandleBgEstiHandleBgEstiHandleBgEstiHandlebgEstiHandle (input_control)  bg_estimation HBgEsti, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

ID des BgEsti-Datensatzes.

Beispiel (HDevelop)

* Read image for initialization:
read_image(InitImage,'xing/init')
* Initialize BgEsti dataset with
* fixed gains and threshold adaption:
create_bg_esti(InitImage,0.7,0.7,'fixed',0.002,0.02, \
               'on',7.0,10,3.25,15.0,BgEstiHandle)
* Read the next image in sequence:
read_image(Image0,'xing/xing000')
* Estimate the background:
run_bg_esti(Image0,ForegroundRegion1,BgEstiHandle)
* Display the foreground region:
dev_display (ForegroundRegion1)
* Read the next image in sequence:
read_image(Image1,'xing/xing001')
* Estimate the background:
run_bg_esti(Image1,ForegroundRegion2,BgEstiHandle)
* Display the foreground region:
dev_display (ForegroundRegion2)
* etc.

Ergebnis

run_bg_estirun_bg_estiRunBgEstiRunBgEstiRunBgEsti liefert den Wert 2 (H_MSG_TRUE), falls die Parameter korrekt sind.

Vorgänger

create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiUpdateBgEsti

Nachfolger

give_bg_estigive_bg_estiGiveBgEstiGiveBgEstiGiveBgEsti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiUpdateBgEsti

Siehe auch

set_bg_esti_paramsset_bg_esti_paramsSetBgEstiParamsSetBgEstiParamsSetBgEstiParams, create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiUpdateBgEsti, give_bg_estigive_bg_estiGiveBgEstiGiveBgEstiGiveBgEsti

Modul

Foundation