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_estiRunBgEstiRunBgEstirun_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 (PresentImagePresentImagePresentImagepresentImagepresent_image) verglichen. Mit dem Schwellenwert (fest oder adaptiv, siehe create_bg_esticreate_bg_estiCreateBgEstiCreateBgEsticreate_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_estiCreateBgEstiCreateBgEsticreate_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_factorZoomImageFactorZoomImageFactorzoom_image_factor verkleinert werden (dies gilt auch für das Initialisierungsbild bei create_bg_esticreate_bg_estiCreateBgEstiCreateBgEsticreate_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_estiCreateBgEstiCreateBgEsticreate_bg_esti) geringer zu wählen. Die von run_bg_estirun_bg_estiRunBgEstiRunBgEstirun_bg_esti zurückgelieferte ForegroundRegionForegroundRegionForegroundRegionforegroundRegionforeground_region muss dann natürlich für die Auswertung (Bereiche mit Bewegung) mit zoom_regionzoom_regionZoomRegionZoomRegionzoom_region wieder um den gleichen Faktor vergrößert werden.

Achtung

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

Ausführungsinformationen

Parameter

PresentImagePresentImagePresentImagepresentImagepresent_image (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (byte / real)

Aktuelles Bild.

ForegroundRegionForegroundRegionForegroundRegionforegroundRegionforeground_region (output_object)  region objectHRegionHObjectHObjectHobject *

Region der als Vordergrund detektierten Bereiche.

BgEstiHandleBgEstiHandleBgEstiHandlebgEstiHandlebg_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_estiRunBgEstiRunBgEstirun_bg_esti liefert den Wert 2 ( H_MSG_TRUE) , falls die Parameter korrekt sind.

Vorgänger

create_bg_esticreate_bg_estiCreateBgEstiCreateBgEsticreate_bg_esti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiupdate_bg_esti

Nachfolger

give_bg_estigive_bg_estiGiveBgEstiGiveBgEstigive_bg_esti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiupdate_bg_esti

Siehe auch

set_bg_esti_paramsset_bg_esti_paramsSetBgEstiParamsSetBgEstiParamsset_bg_esti_params, create_bg_esticreate_bg_estiCreateBgEstiCreateBgEsticreate_bg_esti, update_bg_estiupdate_bg_estiUpdateBgEstiUpdateBgEstiupdate_bg_esti, give_bg_estigive_bg_estiGiveBgEstiGiveBgEstigive_bg_esti

Modul

Foundation