NumPy - Schnellere Implementierung der Schwellenwert-Obergrenze

7

Ich schreibe ein Skript, um die Helligkeit eines RGB-Bildes mit NumPy und CV2 über die Umwandlung von RGB in YCrCb und wieder zurück zu ändern. Die Schleife, die ich benutze, dauert jedoch eine Weile, und ich frage mich, ob es einen schnelleren Weg gibt.

%Vor%

Diese verschachtelte Schleife, die den Schwellenwertvergleich implementiert, dauert mindestens 5 bis 7 Sekunden. Gibt es eine schnellere Methode, um diese Funktionalität zu implementieren?

    
Jason 30.01.2014, 14:53
quelle

3 Antworten

15

Die Idee ist, eine Maske zu erstellen können Sie die Vektorisierung von numpy verwenden. Da die Form (n,m,3) ist, durchlaufen Sie die ersten beiden Dimensionen und ziehen Sie den ersten Index der letzten Dimension mit [:,:,0]

%Vor%     
Hooked 30.01.2014, 14:55
quelle
3

Sie können verwenden clip :

Verwendung:

%Vor%

Oder direkt ändern:

%Vor%     
YXD 30.01.2014 15:29
quelle
1
%Vor%

Bearbeiten: Entschuldigung, ich kann noch keine Kommentare hinzufügen. Ich war gestern faul. Richtig über die Änderung vor Ort, aber es ist ziemlich offensichtlich, oder Sie brauchen es nicht. Und Faulheit war eine Antwort auf eine faule Frage - es gibt eine Funktion für "alles" in numpy - überprüfen Sie einfach die Dokumente.

    
Martin 30.01.2014 16:26
quelle

Tags und Links