• Mistraller
  • Registratie: Oktober 2002
  • Laatst online: 17:18
Ik ben op zoek naar een oplossing voor het volgende probleem:
Ik heb een wireless webcam die elke 2 minuten een plaatje upload naar ftp. Motion detection kan ie helaas niet zelfstandig. Om hiervoor een pc 24/7 aan te zetten vind ik iets te veel van het goede, dus ik vraag me af of er software is die een directory met plaatjes kan "motion detecten".

Dus in feite het voorgaande plaatje vergelijkt met de volgende, zodat er ook geen detectie onstaat doordat het donker wordt.
Alle software die ik hiervoor kan vinden, willen direct connecten met de camera, of de stream benaderen, maar dat hoeft voor mijn toepassing niet. Áls er beweging is, dan is dat zeker meer dan 2 minuten, en heb ik er dus een plaatje van. Dat plaatje wil ik automatisch kunnen zoeken, want van dat scrollen door al die images wordt ik na een week al helemaal knettergek.

Ik heb al wel naar d'peg gekeken, maar dat is bedoeld voor duplicates, en daar kan ik dus niets instellen mbt noise of bepaalde area's, zoals dat met de meeste motion detectors wel kan.
Tevens heb ik gekeken of ik motion kan draaien op mijn asus wl500g, en dat kan wel, maar dat kost helaas dusdanig veel performance, dat het ding zijn overige taken niet meer trekt...

My solar panels | Soladin loggen? | Strava
---------------
Gemak dient de mens, moeite dient de mensheid.


  • benoni
  • Registratie: November 2003
  • Niet online
Het lijkt me een aardig idee om een subtract filter (of zoiets) uit te voeren op de te vergelijken afbeeldingen, zodat je als resultaat een plaatje krijgt waarop enkel de verschillen te zien zijn. Daar kun je dan de grote verschillen uitfilteren m.b.v. een treshold.
Of je zou kunnen proberen om simpelweg een bitwise XOR uit te voeren op opvolgende plaatjes en de resultaten inpakken met gzip. Als je die gezipte uitvoerbestanden op bestandsgrootte zou sorteren, moeten volgens mij de meest interessante wel bovenaan komen :)

Je zou zoiets kunnen schrijven in Perl of Python, of je zou een dergelijke functie van de ImageMagick library kunnen toepassen, of van de GD library.

ImageMagick lib -> compose 2 images using 'minus' option.
Deze berekeningen zijn vergelijkbaar met de layer composities in Photoshop en TheGIMP, dus daar kun je vast uitproberen of 't resultaat in de goede richting is, voordat je 't in een script gaat schrijven.
minus Subtract the colors in the source image from the destination image. When transparency is involved, Opaque areas will be subtracted from any destination opaque areas.
of ImageMagick -> deconstruct
-deconstruct

find areas that has changed between images

Given a sequence of images all the same size, such as produced by -coalesce, replace the second and later images, with a smaller image of just the area that changed relative to the previous image.

The resulting sequence of images can be used to optimize an animation sequence, though will not work correctly for GIF animations when parts of the animation can go from opaque to transparent.

This option is actually equivalent to the -layers method 'compare-any'.
zie ook ImageMagick -> layers.


of gd lib -> Compare
int gdImageCompare(gdImagePtr im1, gdImagePtr im2) (FUNCTION)

gdImageCompare returns a bitmap indicating if the two images are different. The members of the bitmap are defined in gd.h, but the most important is GD_CMP_IMAGE, which indicated that the images will actually appear different when displayed. Other, less important, differences relate to pallette entries. Any difference in the transparent colour is assumed to make images display differently, even if the transparent colour is not used.

  • Mistraller
  • Registratie: Oktober 2002
  • Laatst online: 17:18
benoni schreef op dinsdag 01 april 2008 @ 09:36:
Het lijkt me een aardig idee om een subtract filter (of zoiets) uit te voeren op de te vergelijken afbeeldingen, zodat je als resultaat een plaatje krijgt waarop enkel de verschillen te zien zijn. Daar kun je dan de grote verschillen uitfilteren m.b.v. een treshold.
Of je zou kunnen proberen om simpelweg een bitwise XOR uit te voeren op opvolgende plaatjes en de resultaten inpakken met gzip. Als je die gezipte uitvoerbestanden op bestandsgrootte zou sorteren, moeten volgens mij de meest interessante wel bovenaan komen :)

Je zou zoiets kunnen schrijven in Perl of Python, of je zou een dergelijke functie van de ImageMagick library kunnen toepassen, of van de GD library.

ImageMagick lib -> compose 2 images using 'minus' option.
Deze berekeningen zijn vergelijkbaar met de layer composities in Photoshop en TheGIMP, dus daar kun je vast uitproberen of 't resultaat in de goede richting is, voordat je 't in een script gaat schrijven.

[...]


of ImageMagick -> deconstruct

[...]

zie ook ImageMagick -> layers.


of gd lib -> Compare

[...]
Bedankt voor de tips, ik ga er naar kijken. Ik moet zeggen dat ik me er wel over verbaasd heb dat een dergelijk stukje software niet zo bestaat, omdat er wel erg veel software is die met dezelfde plaatjes, maar dan direct uit een webcam, prima uit de voeten kan.
Het voelt een beetje als het wiel opnieuw uitvinden :|
Aangezien ik qua beeldbewerking nooit verder ben gekomen dan Picasa en mspaint, zal het voor mij een hele uitdaging worden.

[ Voor 4% gewijzigd door Mistraller op 01-04-2008 22:14 ]

My solar panels | Soladin loggen? | Strava
---------------
Gemak dient de mens, moeite dient de mensheid.