Addon Idee: Mittelwert der Farbe des Bildschirms herausfinden [Python]

  • Hallo zusammen,

    ich bin gerade dabei etwas in Richtung "Lichtsteuerung" ins Wohnzimmer zu bringen. Dabei denke ich z. B. an die Anpassung der Lichtstimmung (z. B. eines LED RGB-Controllers) abhängig vom Bild auf dem TV.

    Meine Anforderungen an das Addon wären:
    - Addon läuft als Service ständig im Hintergrund und holt mit ca. 1 Hz Aktualisierungsrate den Farbmittelwert des aktuell im Framebuffer liegenden Bildes und stellt diesen Wert (wie auch immer) anderen Addons bereit
    - Addon benutzt dazu keine Schreib-/Leseoperationen auf einen Massendatenträger - alles passiert nur im RAM
    - Addon benötigt wenn möglich keine zusätzlichen Bibliotheken (wie z. B. PIL), außer denen, die bei Kodi schon mitgeliefert werden
    - Das zu steuernde Endgerät muss nicht zwingend direkt am HTPC angeschlossen sein, sondern kann z. B. auch ein Wifi LED RGB-Controller sein, der über FHEM angesteuert wird
    - Am besten wäre das Ganze plattformunabhängig


    Als Algorithmus hatte ich mir etwas wie folgt vorgestellt:
    - Prüfe zyklisch die aktuelle Auflösung und Farbtiefe (resX, resY, depth) - das könnte man mit Kodi Bordmitteln denke ich schon abgefrühstückt bekommen
    - Erzeuge im RAM eine Bitmap aus den 3 Werten
    - Capture das aktuell angezeigte Bild in die Bitmap
    - Resize die Bitmap auf 1x1 Pixel - z. B. mittels einfachem "Nearest Neighbour" Algorithmus (oder etwas performanterem, wenn möglich)
    - Hole die nötigen Farbinformationen aus dem 1x1 Bitmap: r, g, b
    - Stelle die Informationen wie auch immer nach außen zur Verfügung (JSON/XML oder etwas kompakteres?)

    Fertig - so weit, so gut :)

    Habe mir mal Hyperion angeschaut, die machen das auch mittels Framegrabber - aber alles in C und mit extra Bibliotheken, soweit ich das gesehen habe.

    Hat schon mal jemand etwas in die Richtung Framegrabbing oder Zugriff auf den Bildspeicher unter Python gemacht und hat Lust/Zeit mich etwas zu unterstützen bzw. mir Starthilfe zu geben?

    Besten Dank euch schon mal!

    OpenELEC 5.0 Final (5.0.7 / 5.0.8 github) | SolidRun CuBox-i4Pro (CPU: ARM Cortex A9 | GPU: Vivante GC2000)
    Kein kodi.log => Kein Support! | Spendier' mir ein Bier!

    Einmal editiert, zuletzt von root2 (15. Februar 2017 um 16:52)

  • Hmm.... an sich müßte man doch nur die Lampenzahl auf 1 setzen und den Messwert auf Full. Oder eben in einen Bereich im inneren.
    Ich hatte da vor ner Ewigkeit ein paar Gespräche mit Lagwaggon:
    http://forum.kodi.tv/showthread.php?tid=35895&page=6
    Das war dann ein mono-ambilight.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Aber das war dann auch kein Python.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!