Anwendung der verschiedenen Farbkarte zur Maske

Ich habe ein Bild und eine Maske und möchte je nach Maske zwei verschiedene Farbschemata anwenden. Die nicht maskierten Werte werden beispielsweise mit einer grauen Farbkarte und den mit der Jet-Farbkarte maskierten Werten aufgezeichnet.

Ist so etwas in Matplotlib möglich?

  • Unterschied zwischen "Achsen" und "Achse" in Matplotlib?
  • Matplotlib-Etiketten / Titel verschwinden beim Export im eps-Format
  • Ist es möglich, ein Diagramm mit diesem ganz bestimmten Hintergrund zu erzeugen?
  • Stackplot mit der Liste der Wörterbuchwerte (Python 3.x)
  • Wie kann ich Matplotlib in den ipdb-Debugger in Spyder (oder einem anderen Debugger) ziehen?
  • Füge Polarachsen zum kartesischen Plot in Matplotlib hinzu
  • One Solution collect form web for “Anwendung der verschiedenen Farbkarte zur Maske”

    Mein Ansatz wäre, ein maskiertes, numpy Array zu kreieren und es auf dem Graustufenbild zu überlagern. Die maskierten Werte setzen sich auf eine Deckkraft von 0 aus und machen sie unsichtbar und zeigen damit das Graustufenbild unten.

     im = np.array([[2, 3, 2], [3, 4, 1], [6, 1, 5]]) mask = np.array([[False, False, True], [False, True, True], [False, False, False]]) # note that the mask is inverted (~) to show color where mask equals true im_ma = np.ma.array(im, mask=~mask) # some default keywords for imshow kwargs = {'interpolation': 'none', 'vmin': im.min(), 'vmax': im.max()} fig, ax = plt.subplots(1,3, figsize=(10,5), subplot_kw={'xticks': [], 'yticks': []}) ax[0].set_title('"Original" data') ax[0].imshow(im, cmap=plt.cm.Greys_r, **kwargs) ax[1].set_title('Mask') ax[1].imshow(mask, cmap=plt.cm.binary, interpolation='none') ax[2].set_title('Masked data in color (jet)') ax[2].imshow(im, cmap=plt.cm.Greys_r, **kwargs) ax[2].imshow(im_ma, cmap=plt.cm.jet, **kwargs) 

    Bildbeschreibung hier eingeben

    Wenn Sie keinen vmin und vmin Wert für imshow , wird die Colormap auf den Min und Maximum aus dem unmaskierten Teil des Arrays ausgedehnt. Um also eine vergleichbare Colormap zu erhalten, die min und max aus dem unmasked Array zu imshow .

    Python ist die beste Programmiersprache der Welt.