2012-09-18 9 views
7

Ich benutze imshow Funktion mit interpolation='nearest' auf einem Graustufenbild und bekomme ein schönes Farbbild als Ergebnis, sieht aus wie es eine Art von Farbsegmentierung für mich tut, was genau dort vor sich geht?Was macht matplotlib `imshow (interpolation = 'nearest')?

Ich möchte auch so etwas für die Bildverarbeitung bekommen, gibt es eine Funktion auf numpy Arrays wie interpolate('nearest') da draußen?

EDIT: mich bitte korrigieren, wenn ich falsch bin, sieht es aus wie es einfache Clustern von Pixeln hat (Cluster Farben des entsprechenden colormap sind) und das Wort ‚am nächsten‘, sagt, dass es die nächste colormap Farbe annimmt (wahrscheinlich im RGB-Raum) zu entscheiden, zu welchem ​​Cluster das Pixel gehört.

+0

Siehe diese Antwort: http://stackoverflow.com/questions/14722540/smoothing-between-pixels-of-imagesc-imshow-in-matlab-like-the-matplotlib-imshow/14728122#14728122 – jojo

Antwort

12

interpolation='nearest' zeigt einfach ein Bild an, ohne zu versuchen, zwischen Pixeln zu interpolieren, wenn die Bildschirmauflösung nicht der Bildauflösung entspricht (was meistens der Fall ist). Es wird ein Bild entstehen, in dem Pixel als ein Quadrat von mehreren Pixeln angezeigt werden.

Es besteht keine Beziehung zwischen interpolation='nearest' und dem Graustufenbild, das in Farbe angezeigt wird. Standardmäßig verwendet imshow die Farbabbildung jet, um ein Bild anzuzeigen. Wenn Sie möchten, dass es in Graustufen angezeigt wird, rufen Sie die Methode gray() auf, um die graue Farbpalette auszuwählen.

+0

Danke für die Kommentar zu Colormap! Es brachte mich in die richtige Richtung. – Alex

Verwandte Themen