Code 139 bei der Bildsubtraktion beenden

9

Ich führe eine Bildsubtraktion mit Python durch. Ich habe Bilder in Form von numply Arrays. Die Größe der Liste, die alle Bilder enthält, ist 1000. Jedes nummerische Array in der Liste hat den Typ 360 * 640. Die Frame-Subtraktion ist korrekt, wenn die Anzahl der Frames etwa 300 beträgt.

%Vor%

Wenn ich den Code mit Frames als 1000 ausführe, bekomme ich folgende Ausgabe:

%Vor%

Könnten Sie mir helfen, diesen Fehler zu überwinden und etwas Licht zu werfen, wenn ich einen solchen Fehler bekomme?

    
user3646052 16.05.2014, 20:28
quelle

1 Antwort

4

Sie haben möglicherweise nicht genug Speicher: Sie haben 1000 Bilder x 360 Pixel x 640 Pixel x 3 Bänder x 8 Bit = ca. 691 MB ...

Code 139 ist hier aufgeführt als "Versuch, auf ein virtuelles zuzugreifen Adresse, die nicht in Ihrem Adressraum ist ", was einen Speicherzuweisungsfehler unterstützen würde, was leicht passieren könnte, wenn Sie auf einem 32-Bit-System mit wenig RAM arbeiten und andere Dinge bereits im Speicher sind.

Sie könnten Ihren Code umgestalten, so dass es nicht notwendig ist, eine Liste von Bildern im Speicher zu halten, zum Beispiel nur das letzte Bild im Speicher zu behalten, dann die Subtraktion durchzuführen und es mit dem aktuellen Bild zu überschreiben.

Sie können dies testen, indem Sie Ihre Funktion durch Folgendes ersetzen:

%Vor%

und sehen, ob das läuft, ohne den Speicher zu leeren.

    
Benjamin 08.12.2015 01:20
quelle

Tags und Links