Wie extrahiere ich einen grünen Kanal aus einem RGB-Bild in Python mithilfe der Scikit-Image-Bibliothek?

8

Ich bin sehr neu in der Bibliothek scikit-image ( skimage ) in Python für die Bildbearbeitung (vor wenigen Minuten gestartet!). Ich habe imread verwendet, um eine Bilddatei in numpy.ndarray zu lesen. Die Anordnung ist 3-dimensional, wobei die Größe der dritten Dimension 3 ist (nämlich eine für jede der roten, grünen und blauen Komponenten eines Bildes).

%Vor%

Ich habe versucht, den grünen Kanal zu extrahieren als:

%Vor%

Aber wenn ich diese Bildmatrix in eine Ausgabedatei schreibe als:

%Vor%

Ich bekomme ein Bild, das nicht wirklich grün aussieht!

    
Sangram 18.04.2015, 14:51
quelle

1 Antwort

15

Was Sie extrahieren, ist nur ein einzelner Kanal und das zeigt Ihnen, wie viel grüne Farbe jedes Pixel hat. Dies wird schließlich als ein Graustufenbild visualisiert, wobei dunklere Pixel angeben, dass an diesen Punkten nicht viel "Grün" vorhanden ist, und hellere Pixel anzeigen, dass an diesen Punkten eine hohe Menge an Grün vorhanden ist.

Wenn ich das, was Sie richtig sagen, interpretiere, möchten Sie sich das "Grün" jeder Farbe vorstellen. Stellen Sie in diesem Fall sowohl den roten als auch den blauen Kanal auf Null und belassen Sie den grünen Kanal intakt.

Also:

%Vor%

Beachten Sie, dass ich eine Kopie Ihres Originalbilds erstellt und die Kanäle geändert habe, anstatt das Original zu ändern, falls Sie es benötigen. Wenn Sie jedoch nur den grünen Kanal extrahieren und diesen wie oben erwähnt als Graustufenbild darstellen möchten, dann können Sie das tun, was Sie oben mit der Einstellung Ihrer green_image Variable getan haben.

    
rayryeng 19.04.2015, 05:04
quelle