| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	 
	
	
		| Autor | 
		Nachricht | 
	 
	
		Wolle-77 •--->
  
  
  Anmeldedatum: 25.02.2003 Beiträge: 449 Wohnort: Geldern
  | 
		
			
				 Verfasst am: 20.04.2006 - 00:48    Titel: Bewegungsmelder Kameraüberwachung | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	 
	
		  | 
	 
	
		iScript •---->
  
  
  Anmeldedatum: 29.03.2001 Beiträge: 1116
 
  | 
		
			
				 Verfasst am: 20.04.2006 - 07:49    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				respekt, wolle
 
da hat dir der till ja einen nachmittag versaut  
 
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 | 
		 | 
	 
	
		  | 
	 
	
		Wolle-77 •--->
  
  
  Anmeldedatum: 25.02.2003 Beiträge: 449 Wohnort: Geldern
  | 
		
			
				 Verfasst am: 20.04.2006 - 08:40    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	 
	
		  | 
	 
	
		jiuer7845 •---->
  
 
  Anmeldedatum: 06.04.2021 Beiträge: 521
 
  | 
		 | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
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 
		 | 
	 
 
 | 
 
 |