run_bg_estiT_run_bg_estiRunBgEstiRunBgEstirun_bg_esti (Operator)

Name

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

def run_bg_esti(present_image: HObject, bg_esti_handle: HHandle) -> HObject

Beschreibung

run_bg_estirun_bg_estiRunBgEstiRunBgEstiRunBgEstirun_bg_esti 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 (PresentImagePresentImagePresentImagePresentImagepresentImagepresent_image) verglichen. Mit dem Schwellenwert (fest oder adaptiv, siehe create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsticreate_bg_esti) 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_estiCreateBgEstiCreateBgEstiCreateBgEsticreate_bg_esti 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_factorZoomImageFactorZoomImageFactorZoomImageFactorzoom_image_factor verkleinert werden (dies gilt auch für das Initialisierungsbild bei create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsticreate_bg_esti). 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_estiCreateBgEstiCreateBgEstiCreateBgEsticreate_bg_esti) geringer zu wählen. Die von run_bg_estirun_bg_estiRunBgEstiRunBgEstiRunBgEstirun_bg_esti zurückgelieferte ForegroundRegionForegroundRegionForegroundRegionForegroundRegionforegroundRegionforeground_region muss dann natürlich für die Auswertung (Bereiche mit Bewegung) mit zoom_regionzoom_regionZoomRegionZoomRegionZoomRegionzoom_region wieder um den gleichen Faktor vergrößert werden.

Achtung

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

Ausführungsinformationen

Parameter

PresentImagePresentImagePresentImagePresentImagepresentImagepresent_image (input_object)  singlechannelimage objectHImageHObjectHImageHobject (byte / real)

Aktuelles Bild.

ForegroundRegionForegroundRegionForegroundRegionForegroundRegionforegroundRegionforeground_region (output_object)  region objectHRegionHObjectHRegionHobject *

Region der als Vordergrund detektierten Bereiche.

BgEstiHandleBgEstiHandleBgEstiHandleBgEstiHandlebgEstiHandlebg_esti_handle (input_control)  bg_estimation HBgEsti, HTupleHHandleHTupleHtuple (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_estiRunBgEstiRunBgEstiRunBgEstirun_bg_esti liefert den Wert TRUE, falls die Parameter korrekt sind.

Vorgänger

create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsticreate_bg_esti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiUpdateBgEstiupdate_bg_esti

Nachfolger

give_bg_estigive_bg_estiGiveBgEstiGiveBgEstiGiveBgEstigive_bg_esti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiUpdateBgEstiupdate_bg_esti

Siehe auch

set_bg_esti_paramsset_bg_esti_paramsSetBgEstiParamsSetBgEstiParamsSetBgEstiParamsset_bg_esti_params, create_bg_esticreate_bg_estiCreateBgEstiCreateBgEstiCreateBgEsticreate_bg_esti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiUpdateBgEstiupdate_bg_esti, give_bg_estigive_bg_estiGiveBgEstiGiveBgEstiGiveBgEstigive_bg_esti

Modul

Foundation