Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Bewegungsmelder Kameraüberwachung

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 20.04.2006 - 00:48    Titel: Bewegungsmelder Kameraüberwachung Antworten mit Zitat

Hallo zusammen,

durch Tills Frage bin ich doch neugierig geworden auf das Thema mit dem Bewegungsmelder (siehe hier: http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=2005 )


Damit es nicht untergeht, habe ich mal einen neuen Thread angefangen; was sicherlich Til recht freuen wird.

Also, hier meine Lösung, um einen visuellen Bewegungsmelder zu bauen. Gebraucht wird ein Intel-Mac mit iSight und Photo Booth als Programm; außerdem noch Photoshop CS(2) als Hilfe, welches das Histogramm liefert.


Ein wenig stolz bin ich schon, muß ich zugestehen; es funktioniert schon recht gut.

Mit den beiden anfangs festgelegten Werten müßt Ihr ein wenig spielen, um die Empfindlichkeit für Eure Umgebung richtig einzustellen.

Wenn Ihr einen Ordner "Stop" auf den Schreibtisch anlegt, hört das Script auf.

Code:

property gesamtpixelabweicherlaubt : 40
property einzelpixelfarbabweicherlaubt : 75
set histogrammwerte1 to {}
set prognichtstop to false
repeat until prognichtstop is true
   tell application "Photo Booth"
      activate
      tell application "System Events"
         tell process "Photo Booth"
            keystroke "t" using {command down, option down}
         end tell
      end tell
   end tell
   delay 0.5
   repeat with i from 1 to 3
      set letztesfoto to paragraph i of (do shell script "ls -t " & (quoted form of POSIX path of ((path to "cusr" as string) & "Pictures:Photo Booth")))
      if ".jpg" is in letztesfoto then exit repeat
   end repeat
   tell application "Finder" to set letztesfoto to file letztesfoto of folder "Photo Booth" of folder "Pictures" of folder (path to "cusr")
   tell application "Adobe Photoshop CS2"
      open (letztesfoto as alias)
      set histogrammwerte2 to histogram of document 1
      close document 1 without saving
   end tell
   if histogrammwerte1 is {} then set histogrammwerte1 to histogrammwerte2
   set abweichungen to 0
   repeat with i from 1 to (count items of histogrammwerte1)
      set farbwert to ((item i of histogrammwerte1) as integer) - ((item i of histogrammwerte2) as integer)
      if farbwert < 0 then set farbwert to farbwert * -1
      if farbwert is greater than or equal to einzelpixelfarbabweicherlaubt then set abweichungen to abweichungen + 1
   end repeat
   if abweichungen > gesamtpixelabweicherlaubt then
      set histogrammwerte1 to histogrammwerte2
   else
      set histogrammwerte1 to histogrammwerte2
      tell application "Finder" to delete letztesfoto
   end if
   delay 2
   tell application "Finder" to set prognichtstop to (exists (folder "Stop" of desktop))
end repeat



Das Script arbeitet unermüdlich -- wenn zwei Bilder gleich sind, dann wird das gerae aufgenommene weggeschmissen und das neue aber als Referenz genommen -- so können also allmähliche Lichtschwankungen wie das Tageslicht ausgeglichen werden.

Wenn das neue Bild anders ist außerhalb der Toleranz, so wird es behalten. Am Ende des Überwachungsvorganges einfach den Papierkorb entleeren und Photo Booth neu aufrufen -- dann habt Ihr alle wichtigen Bilder in der Sammlung, alle gleichen Bilder sind weg.


Ich hoffe, es kann jemand gebrauchen. Till, kannst Dich ja mal melden, wenn Du damit experementiert hast.
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 20.04.2006 - 07:49    Titel: Antworten mit Zitat

respekt, wolle
da hat dir der till ja einen nachmittag versaut Wink
ist doch toll wenn sowas dabei rauskommt.
hast du eigentlich deine ursprüngliche idee, die vergleiche der bilder über die shell zu machen, auch verfolgt, oder bist du gleich auf photoshop los?
die shell hätte natürlich den vorteil, das kein photoshop benötigt würde.

ich könnte mir auch vorstellen, den vorderen teil deines scriptes zum bilder-schiessen an die software meiner digital-camera anzupassen.
mir würde dabei eine lösung ohne photoshop allerdings besser gefallen.
aber der gedanke ist ja schon mal angestossen. dafür schon mal danke.
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 20.04.2006 - 08:40    Titel: Antworten mit Zitat

Hallo iScript, Hallo zusammen,

erst einmal eine leicht modifizierte Fassung:
Code:

property gesamtpixelabweicherlaubt : 130
property einzelpixelfarbabweicherlaubt : 35
set histogrammwerte1 to {}
set prognichtstop to false
repeat until prognichtstop is true
   tell application "Photo Booth"
      activate
      tell application "System Events"
         tell process "Photo Booth"
            keystroke "t" using {command down, option down}
         end tell
      end tell
   end tell
   delay 0.5
   repeat with i from 1 to 3
      set letztesfoto to paragraph i of (do shell script "ls -t " & (quoted form of POSIX path of ((path to "cusr" as string) & "Pictures:Photo Booth")))
      if ".jpg" is in letztesfoto then exit repeat
   end repeat
   tell application "Finder" to set letztesfoto to file letztesfoto of folder "Photo Booth" of folder "Pictures" of folder (path to "cusr")
   tell application "Adobe Photoshop CS2"
      open (letztesfoto as alias)
      set histogrammwerte2 to histogram of document 1
      close document 1 without saving
   end tell
   if histogrammwerte1 is {} then set histogrammwerte1 to histogrammwerte2
   set abweichungen to 0
   repeat with i from 1 to (count items of histogrammwerte1)
      set farbwert to ((item i of histogrammwerte1) as integer) - ((item i of histogrammwerte2) as integer)
      if farbwert < 0 then set farbwert to farbwert * -1
      if farbwert is greater than or equal to einzelpixelfarbabweicherlaubt then set abweichungen to abweichungen + 1
   end repeat
   if abweichungen > gesamtpixelabweicherlaubt then
      set histogrammwerte1 to histogrammwerte2
      say "Hi There! You are in Picture!"
   else
      set histogrammwerte1 to histogrammwerte2
      do shell script "rm " & quoted form of POSIX path of (letztesfoto as alias)
   end if
   delay 2
   tell application "Finder" to set prognichtstop to (exists (folder "Stop" of desktop))
end repeat


So, damit hat das Papierkorbgeräusch ein Ende und es passiert etwas (Es kommt "Hi There..." aus dem Lautsprecher, wenn etwas ins Bild gerät.


So, dann zu iScripts Frage. Natürlich habe ich versucht, einen Bildabgleich per Shell vorzunehmen, aber das kann man so erstmal vergessen. Der Weg über den Helligkeitsverlauf (Histogramm) ist erstens gut und mathematisch über einen Wertevergleich ausmessbar und da liefert Photoshop das direkt als Liste.

Wenn jemand weiß, wie man da anders drankommt -- bitte, gerne her damit. Auch ich hätte lieber eine unabhängige Lösung...

Das (kleine) Problem ist noch, daß man die ganzen gelöschten Fotos aus Photo Booth noch entfernen muß...
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter