Kameraüberwachung möglich?

  • Hi,

    hab mir grade überlegt ob es eigentlich möglich wäre mit Autoit eine automatisch Kameraüberwachung zu realisieren. Stelle mir das so vor, das eine Kamera jede Sekunde ein Bild erzeugt. Von diesem Bild wird eine PixelChecksum erstellt immer mit PixelChecksum des eine Sekunde vorher entstandenen Bildes vergleicht. Um zu verhindern, dass bei der kleinsten Änderung schon "Alarm" kommt müsste man denke ich einfach die Anzahl der step in der PixeklChecksum erhöhen. Wäre das so wie ich mir das denke möglich?

    mfg

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hallo,
    das Problem bei der ganzen Geschichte ist, daß die Sensoren der Kameras ein eingebautes "Rauschen" haben. Dieses Verfahren wird mittlerweile zur Erzeugung von Zufallszahlen verwendet, kein Scherz!
    Somit bekommst du sicherlich nicht 2 komplett gleiche Bilder, aber das hast du ja schon gemerkt.

    [autoit]

    pixelchecksum()

    [/autoit]

    ist leider auch nicht die Lösung, die Steps hochzusetzen verändert das Problem nicht.
    Ggf. würde es funktionieren, das Bild in Sektoren zu unterteilen und für jeden Sektor eine "geglättete" Prüfsumme zu erstellen.
    Bsp.: Scanne einen 50x50 Pixelblock (ggf auch nur jedes 4. Pixel), schreibe die Farben in eine Liste und Sortiere diese Liste aufsteigend nach den Grundfarben RGB. Man erhält dadurch "vorherrschende" Farben, mal angenommen X-mal Rot, Y-mal Grün, Z-mal Blau. Angenommen das Bild ist ein überwiegend grüner Fußballrasen.
    Wenn sich im nächsten Bild (ich phantasiere jetzt^^ ) ein roter Ball in diesen Bildausschnitt bewegt, dann werden die X-Werte (Rot) wesentlich zunehmen, und die y-Werte (Grün) wesentlich abnehmen.
    Keine Ahnung, ob Pixelgetcolor() und Autoit allgemein schnell genug für deine Zwecke wäre, aber ich habe vor kurzem einen sehr interessanten Ansatz gefunden (engl Forum) um Assemblercode in Autoit einzubinden. Dort war auch ein Beispiel, um GUI´s extrem schnell mit zufälligen Pixeln zu füllen. Finde aber leider den Link nicht, Progandy war aber m.E. involviert.....
    ciao
    Andy

  • Ich hab sowas ähnliches mal gemacht.

    Um das Rauschen herauszufiltern kann man einfach die Änderung aller Pixel miteinander vergleichen, daraus erhält man ein Grundrauschen.
    Dieses Grundrauschen nimmt man als Referenz gegen aktuelle Änderungen.

    Die Schwierigkeit ist dann wie empfindlich soll sowas sein.


    Spoiler anzeigen


    PS das Programm geht nur solange es im Vordergrund läuft, da die Pixel direkt vom Desktop genommen werden, falls wer das besser lösen kann dann bitte nur zu

    2 Mal editiert, zuletzt von Unicom (17. Juni 2009 um 11:44)

  • Habe das Skript zwar noch nicht gestartet, jedoch glaube ich, das eine GUI kommt, wo der Snapshot ausgewertet wird ;)
    Also, wenn es nicht im Vordergrund ist, dann kann AutoIT auf dem Bildschirm nur deinen Hintergrund "sehen" und nicht das GUI =D

  • Ja bei dem Programm werden die Pixel direkt vom Desktop ausgelesen.
    Wenn man ein anderes Fenster davorschiebt gehts nicht mehr.

    Wer Lust hat kann es ja umschreiben,
    z.B. Bilder aufnehmen (Funktion ist im Programm enthalten um images zu speichern)
    und dort dann die Pixel vergleichen.