Add.overlay - bei 2 Schichten ist bereits out of memory

  • Hallo zusammen,

    ich habe ein Problem: Ich würde in meiner Kamera-Preview ein Countdown einblenden. Der zählt dann von 7 - 1 runter und das Bild wird geschossen.

    Dabei wird ein Bild dauerhaft im Hintergrund des Countdowns eingeblendet.

    Hier der entsprechende Code:

    Overlayback.png wird angezeigt. die Datei x07. png wird allerdings nicht überblendet sondern die Vorschau bricht ab mit folgender Fehlermeldung:


    Hat mir jemand eine Lösung wie ich das Problem lösen kann?

    Ich habe ein Raspberry pi 4 mit 4 gb ram. Daran solls nicht liegen ;)


    Grüße Chris

  • Chris1893

    Changed the title of the thread from “Add.overlay - Mehrere Schichten” to “Add.overlay - bei 2 Schichten ist bereits out of memory”.
  • Hallo,


    zu dem Code fehlen irgendwie ein paar Zusammenhänge. Ich würde mal nicht ein Bild nach dem anderen öffnen, sondern vor dem öffnen des nächsten, dass das nicht mehr gebraucht wird, wieder schließen. Dazu könntest du das 'with'-Statement nehmen oder Alternativ 'contexlib'.


    Funktioniert den die Kamera ohne deine Bilder?

    Kannst du mal ein vollständiges Minimalbeispiel schreiben, dass das Problem reproduziert?


    Grüße

    Dennis

    🎧 Mein Herz pumpt nur Adrenalin, ein Feuer tobt tief in mir drin und du, du löscht es mit Benzin 🎧

  • Hallo Dennis,


    Danke für deine Antwort.

    Die Bilder werden ja geschlossen - außer eben das erste Bild welches als Hintergrund fungieren soll.


    Bsp. Zeile 47:

    Code
    camera.remove_overlay(o07)

    Von daher verstehe ich das Ganze auch nicht.


    Die Kamera funktioniert einwandfrei.

  • Hallo,


    ich meinte eher das“Image.open“. Aber mehr ist mir zumindest zum Thema Speicher nicht aufgefallen.

    Wenn sich niemand mehr meldet, musst du das Programm mal soweit zurück bauen, bis es funktioniert um den Fehler zu finden.


    Grüße

    Dennis

    🎧 Mein Herz pumpt nur Adrenalin, ein Feuer tobt tief in mir drin und du, du löscht es mit Benzin 🎧

  • Der Code sieht auf jeden Fall so aus als sollte man da mal nummerierte Namen loswerden und die Codewiederholungen durch eine Schleife ersetzen.


    Wieviel RAM wird denn für den Videochip reserviert? Drei Bilder in der Auflösung belegen alleine ja schon 44½ MiB und der Desktop braucht ja auch noch Speicher.

    “There are two ways to write error-free programs; only the third one works.” — Alan J. Perlis

  • Wo kann ich die Auslastung des Videochips auslesen?

    So direkt (vermute ich mal) nirgends, aber evtl. hilft vcgencmd mem_oom wenigstens etwas weiter. Laut Doku

    Displays statistics on any OOM (out of memory) events occurring in the VideoCore memory space.