Auslösen wenn Kamera ruhig/störende Objekte im Bild löschen

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Auslösen wenn Kamera ruhig/störende Objekte im Bild löschen

Beitragvon gaga.signor » 15.02.2011, 22:20

Hallo liebe alte und neue Hasen,

vielleicht kann mir einer einen kleinen Hinweis geben, mit meiner eigenen Suche komme ich da irgendwie nicht weiter ...

Gibt es das, was der StereoDataMaker-Befehl "Shoot_when_camera-steady" verspricht auch ohne SDM? Also eine Möglichkeit der "negativen" Bewegungserkennung, so dass erst ausgelöst wird, wenn die Kamera wirklich ruhig steht?

Das ganze soll mit einer A590IS in einem kleinen Panoramaautomaten zum Einsatz kommen - und dieser schwingt beim Bewegen leider manchmal etwas, so dass die Kamera mit dem Auslösen warten soll, bis sie zur Ruhe gekommen ist.

Wahrscheinlich ist das eh ganz einfach, nur finde ich das richtige Skript oder den richtigen Forenthread nicht ... immer geht es nur ums Auslösen, wenn sich etwas bewegt ;-)

Danke!
Christian
Kamera: Canon Powershot A590IS, Ixus 60, G11
Benutzeravatar
gaga.signor
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 05.04.2009, 11:33
Wohnort: Linz/Österreich

Re: Auslösen wenn Kamera ruhig?

Beitragvon msl » 16.02.2011, 09:09

Hallo,

du hast doch die Antwort eigentlich schon selbst gegeben. ;)

Werte über den Skriptbefehl md_detect_motion aus, wann keine Bewegung vorkommt. Das sollte man möglicherweise, mehrfach in einer Schleife prüfen, da der Befehl sehr schnell arbeitet. Wenn der Rückgabewert mehrfach 0 beträgt, herrscht Bewegungsruhe.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Auslösen wenn Kamera ruhig?

Beitragvon gaga.signor » 16.02.2011, 21:39

Hallo,
danke für die rasche Antwort, an der ich nun auch schon wieder einige Stunden knoble. Dass das so möglich sein würde, habe ich mir schon gedacht, aber eben auch, dass die Tücke wahrscheinlich im Detail liegt ;-)

Nachfolgend mal mein Skript, das das können sollte, was ich will, aber partout nicht auslöst, auch wenn es völlig finster ist - also wirklich keine Bewegung weit und breit.

Vorher aber noch grundsätzliche Fragen, die vielleicht meinen Versuch eh schon scheitern lassen:
Ist es überhaupt möglich mit der Bewegungserkennung so feine Bewegungen zu erkennen, dass sich ernsthaft Verwackelungen verhindern lassen?
Wie ist das bei schlechten Lichtverhältnissen (Langzeit-Nachtaufnahmen), da müsste es ja noch schwieriger für die Kamera sein, oder? Aber natürlich umso nötiger für das Foto.

Liebe Grüße,
Christian

Code: Alles auswählen
@title No Motion Test
@param a Anzahl Spalten
@default a 6
@param b Anzahl Zeilen
@default b 6
@param e Vergleichsintervall ms
@default e 7
@param f Schwellwert 0-255
@default f 2
@param o Pixel Step)
@default o 5
@param j Countdown
@default j 100

:loop
press "shoot_half"
do
until get_shooting = 1
i=j
do
i=i-1
print "Countdown " i
until i=0
h=1
do
md_detect_motion a, b, 1, 300000, e, f, 1, h, 0, 0, 0, 0, 0, 0, o, 0
until h=0
press "shoot_full"
release "shoot_full"
release "shoot_half"
do
until get_shooting <> 1
goto "loop"

Kamera: Canon Powershot A590IS, Ixus 60, G11
Benutzeravatar
gaga.signor
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 05.04.2009, 11:33
Wohnort: Linz/Österreich

Re: Auslösen wenn Kamera ruhig?

Beitragvon gehtnix » 16.02.2011, 22:16

moin,

diese 300000 in untenstehender Zeile würde ich mal auf 1000 runtersetzen (probieren). (Sofern ich meiner eigenen MD-Six-Doku trauen darf ;) )
gaga.signor hat geschrieben:md_detect_motion a, b, 1, 300000, e, f, 1, h, 0, 0, 0, 0, 0, 0, o, 0

1000 würde dann nach 1 Sekunde Ruhezeit die gewünschte Null liefern!

Ausprobieren würde ich das mit MD-Fast.bas > Skriptarchiv. Das "until h=0" hast Du ja schon angepasst =D>

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Re: Auslösen wenn Kamera ruhig?

Beitragvon fe50 » 17.02.2011, 07:05

gaga.signor hat geschrieben:Ist es überhaupt möglich mit der Bewegungserkennung so feine Bewegungen zu erkennen, dass sich ernsthaft Verwackelungen verhindern lassen?
Wie ist das bei schlechten Lichtverhältnissen (Langzeit-Nachtaufnahmen), da müsste es ja noch schwieriger für die Kamera sein, oder? Aber natürlich umso nötiger für das Foto.
Das dürfte das eigentliche Problem sein...
Die Bewegungserkennung basiert auf dem Livebild - das was auf dem Kameradisplay angezeigt wird; hier ist die Auflösung sehr gering, meist im Bereich von etwa 360 x 240 Pixeln. Kleine Bild/Farbänderungen werden da nur schwer erkennbar, vor allem bei schlechten Lichtverhältnissen mit hohem Rauschanteil kann eine kleine Bewegung nur sehr schwer vom Rauschen unterschieden werden. Du kannst mit er Empfindlichkeit und der Erkennungs(farb)methode jonglieren, für eine zuverlässige Erkennung dürfte das aber nicht reichen...
◄"The grass was greener, The light was brighter"►  ◄fe50 home►  ◄TRAIL-Magazin►  ◄RTFM !►
Benutzeravatar
fe50
CHDK-Legende
CHDK-Legende
 
Beiträge: 1106
Registriert: 25.04.2008, 14:28
Wohnort: B'Württemberg
Kamera(s): Ixus50 101b, Ixus860 100c, SX10 101a

Re: Auslösen wenn Kamera ruhig?

Beitragvon TZocker » 17.02.2011, 20:34

Wäre es möglich, eine Funktion in chdk zu intigrieren die es mödlich macht das live bild des Bildschirms dauernd zu speichern?

Und was für eine Geschwindigkeit wäre zu erreichen (in Bilder pro sec)
Canon A 650 IS
TZocker
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 51
Registriert: 12.06.2009, 16:20
Kamera(s): A 650

Re: Auslösen wenn Kamera ruhig?

Beitragvon gehtnix » 17.02.2011, 21:01

fe50 hat geschrieben:......Das dürfte das eigentliche Problem sein...
....diese gelbe Engel-Pampe die wir hier trinken müssen. Das wolltest Du doch zum Ausdruck bringen, oderrrr?

Ich bin, mit einem naturtrüben Doppelbock gespülten Gehirn, da andere Meinung.

Bei gaga.signor schwingt ja die Kamera, ergo sind ja alle Pixel des LCD in der Auswertung.
Bei dem Gewitterblitz ist es ja nur ein ganz kleine Zone die ausgewertet wird.

Probiert hab i aber nix :D

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Re: Auslösen wenn Kamera ruhig?

Beitragvon Belichter » 17.02.2011, 22:25

Guten Abend zusammen,
erstmal ... egal was ihr trinkt, beim zittern nichts davon verschütten.
Womit ich wieder on topic wäre.

Wenn ich meine IS schüttele, erscheint unten links im Display ein Logo,
dass darauf hinweist, dass die Bildstabilisierungsfunktion nicht mehr greift.

Kann man das per Script auswerten?
Ob diese Auswertung dann zu einem unverwackelten Bild führt muß man dann noch testen.

Prost.
IXUS 970 IS 100b
Belichter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 170
Bilder: 11
Registriert: 21.05.2009, 09:21
Wohnort: Solingen
Kamera(s): ixus 970 IS 100b

Re: Auslösen wenn Kamera ruhig?

Beitragvon msl » 17.02.2011, 22:48

Hallo Freunde der ruhigen Hand.

Den Bildstabilisator kann man nicht auswerten. Hier kann per Skript nur der Aktivierungszustand gelesen werden.

Das grundlegende Problem hat fe50 schon beschrieben. Man kann nur das als Bewegung auswerten, was auf dem Monitor als Bewegung dargestellt wird. Feine Schwingungen und Erschütterungen sind wohl nicht feststellbar. Grobmotorische Wackler sollten auswertbar sein. Dazu hier mal ein Beispiel in Lua (Ich kann kein uBasic :oops: ):
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
@title no motion
@param a MD-Zeit
@default a 200
@param b Loop-Zeit
@default b 200
]]


time_md = a
time_loop = b
res = 0
count = 10

repeat
    res = md_detect_motion(6, 4, 1, time_md, 10, 10, 1, 0, 0, 0, 0, 0, 0, 0, 1, 50)
    if res > 0 then count = count + 1 end
    sleep(time_loop)
    count = count - 1
    print(count) --Kontroll-Print, sollt im normalen Betrieb weggelassen werden.
until count < 1

print("No Motion")
Erstellt in 0.007 Sekunden, mit GeSHi 1.0.8.9


Das Skript zählt einen Wert herunter, wenn keine Bewegung erkannt wird. Bei Bewegung bleibt der Countdown stehen. Einfluss haben die Zeitwerte für den Zyklus in der Bewegungserkennung und in der Schleife selbst. Diese können über die Parameter verändert werden, was das Experimentieren erleichtert.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Auslösen wenn Kamera ruhig?

Beitragvon gaga.signor » 18.02.2011, 12:38

Hallo und besten Dank für die Hinweise ...

Ich werde versuchen, die Verwackelungssache sowohl hardwaremäßig (softere Bewegungen der Kamera, so dass nicht das ganze Gestell anfängt zu schwingen) als auch hardwaremäßig (Skript) weiter zu optimieren.

Allerdings könnte man ja auch vermuten, dass so eine Funktion, wie ich sie gerne hätte, schon längst auch von Kameraherstellern realisiert wäre, wenn sie denn möglich wäre: Wenn man auslöst wartet die Kamera nicht bis alle grinsen sondern bis ich nicht mehr zittere und macht dann ein perfektes verwackelungsfreies Bild ... da müsste ja dann auch mal eine halbe Sekunde drin sein, bis ich wieder anfange mit zittern, oder?
Das könnte dann ja sogar bei einer ständig grob schüttelnden Bewegung funktionieren, etwa beim gehen. Auch da sollte die Kamera immer mal wieder für eine hunderstel oder so ruhig sein, denke ich, und sei es nur beim Übergang einer Aufwärts- in eine Abwärtsbewegung.

Auch wenn die Bewegungserkennung für meine kleinen Schwingungen (wahrscheinlich) nicht ausreicht, denke ich doch, dass es eine interessante Sache ist, wenn man etwa Bilder an vielbesuchten Orten machen will. Sind ja oft typische touristische Motive, wo einem ständig Leute reinlaufen - stattdessen einfach in Venedig Kamera aufs Stativ und einen Espresso trinken gehen. Wenn man zurückkommt hat man entweder die eine Zehntelsekunde erwischt, in der der Markusplatz in der vergangenen Stunde leer war, oder die Kamera ist geklaut ;-)

Noch eine theoretische Überlegung: der Monitor hat ja grob ein Zehntel der Pixel wie das Bild (je Richtung), oder? Das hieße, eine theoretische Verwackelung (also etwa ideale waagrechte Parallelverschiebung) von 10 Pixel würde im Extremfall nicht bemerkt werden. Liege ich da richtig?

Beste Grüße,
Christian
Kamera: Canon Powershot A590IS, Ixus 60, G11
Benutzeravatar
gaga.signor
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 05.04.2009, 11:33
Wohnort: Linz/Österreich

Re: Auslösen wenn Kamera ruhig?

Beitragvon msl » 18.02.2011, 13:21

Hallo,

gaga.signor hat geschrieben:Noch eine theoretische Überlegung: der Monitor hat ja grob ein Zehntel der Pixel wie das Bild (je Richtung), oder? Das hieße, eine theoretische Verwackelung (also etwa ideale waagrechte Parallelverschiebung) von 10 Pixel würde im Extremfall nicht bemerkt werden. Liege ich da richtig?
Nein, So einfach ist es nicht, die Monitor-Anzeige bildet nicht nur von der Auflösung her anders ab. Da spielen auch Farb- und Helligkeitswerte eine Rolle.

gaga.signor hat geschrieben:... wenn man etwa Bilder an vielbesuchten Orten machen will. Sind ja oft typische touristische Motive, wo einem ständig Leute reinlaufen - stattdessen einfach in Venedig Kamera aufs Stativ und einen Espresso trinken gehen. Wenn man zurückkommt hat man entweder die eine Zehntelsekunde erwischt, in der der Markusplatz in der vergangenen Stunde leer war, oder die Kamera ist geklaut ;-)
Dafür gibt es aber auch andere Lösungen. Man macht einfach eine Serie von Fotos, in der Annahme, dass jede Postion des Motivs mindestens einmal frei zu sehen war. Dazu könnte man sich der CHDK-Intervall-Aufnahmen bedienen. Mit einer Bildbearbeitungssoftware könnte man nun "puzzeln". Es gibt aber auch schon interessante halb-automatische Lösungen, die Leute hier aus dem Forum programmiert haben.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Auslösen wenn Kamera ruhig?

Beitragvon gaga.signor » 22.02.2011, 22:38

Ja das geht natürlich auch. Da sieht man mal, wie man nur in eine Richtung denken kann ...
Beste Grüße,
Christian
Kamera: Canon Powershot A590IS, Ixus 60, G11
Benutzeravatar
gaga.signor
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 05.04.2009, 11:33
Wohnort: Linz/Österreich

Re: Auslösen wenn Kamera ruhig?

Beitragvon gaga.signor » 12.06.2011, 19:14

Darf ich das nochmal aufwärmen?

@ msl:
Du hast geschrieben:
Dafür gibt es aber auch andere Lösungen. Man macht einfach eine Serie von Fotos, in der Annahme, dass jede Postion des Motivs mindestens einmal frei zu sehen war. Dazu könnte man sich der CHDK-Intervall-Aufnahmen bedienen. Mit einer Bildbearbeitungssoftware könnte man nun "puzzeln". Es gibt aber auch schon interessante halb-automatische Lösungen, die Leute hier aus dem Forum programmiert haben.


Welche Lösungen sind das? Ich finde da irgendwie nix ...

Danke!
Christian
Kamera: Canon Powershot A590IS, Ixus 60, G11
Benutzeravatar
gaga.signor
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 05.04.2009, 11:33
Wohnort: Linz/Österreich

Re: Auslösen wenn Kamera ruhig?

Beitragvon Nando » 12.06.2011, 19:36

Hallo Christian,
ich habe letztens mitbekommen, dass es in SDM vorhandene Befehle, für die Anwendung in Scripten, gibt.
(shoot_when_no_movement_for und shoot_when_camera_steady)
http://stereo.jpn.org/eng/sdm/ubasic.htm

Du kannst es ja mal testen. Allerdings läuft das dann nur unter SDM.

bis dann,
Nando
Canon PowerShot SX200 IS 100D (seit Mitte Nov 2009), Canon PowerShot A1000 IS 100b
Nando
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 257
Registriert: 11.11.2009, 15:55

Re: Auslösen wenn Kamera ruhig?

Beitragvon gaga.signor » 12.06.2011, 20:36

Danke, Nando.

Nach einigen theoretischen Überlegungen mithilfe von msl und fe50 in diesem Thread habe ich dann doch davon abgesehen, diese Richtung weiter zu verfolgen. Es scheint nicht möglich die Bewegungserkennung so genau zu verwenden, dass Verwackelungen durch Vibration u.ä. vermieden werden können. Jedenfalls ist das mal so mein Fazit zur Zeit.

Meine neue Frage war eher wegen der von msl genannten Möglichkeiten, mehrere Bilder vom gleichen Motiv so zu kombinieren bzw. zu maskieren, dass durchlaufende Menschen (zum Beispiel) herausgebastelt werden und man dann quasi ein "sauberes" Motiv hat. Ich würde das gerne demnächst in Venedig ausprobieren, da gibts sicher nirgends keine Menschen ;-)

lg,
Christian
Kamera: Canon Powershot A590IS, Ixus 60, G11
Benutzeravatar
gaga.signor
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 35
Registriert: 05.04.2009, 11:33
Wohnort: Linz/Österreich

Nächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste

cron