run_bg_esti — Schätzt den Hintergrund und liefert Vordergrund-Region.
run_bg_esti(PresentImage : ForegroundRegion : BgEstiHandle : )
run_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 (PresentImage) verglichen. Mit dem Schwellenwert (fest oder
adaptiv, siehe create_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_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_factor verkleinert werden (dies gilt auch für das
Initialisierungsbild bei create_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_esti) geringer zu wählen. Die von run_bg_esti
zurückgelieferte ForegroundRegion muss dann natürlich für die
Auswertung (Bereiche mit Bewegung) mit zoom_region wieder um den
gleichen Faktor vergrößert werden.
Das übergebene Bild (PresentImage) muss von gleichem Typ und
gleicher Größe sein, wie das im aktuellen Datensatz abgelegte
Hintergrundbild (festgelegt mit create_bg_esti).
PresentImage (input_object) singlechannelimage → object (byte / real)
Aktuelles Bild.
ForegroundRegion (output_object) region → object
Region der als Vordergrund detektierten Bereiche.
BgEstiHandle (input_control) bg_estimation → (handle)
ID des BgEsti-Datensatzes.
* 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.
run_bg_esti liefert den Wert TRUE, falls die Parameter
korrekt sind.
create_bg_esti,
update_bg_esti
set_bg_esti_params,
create_bg_esti,
update_bg_esti,
give_bg_esti
Foundation