2012-09-18 13 views
7

Io uso la funzione imshow su interpolation='nearest' in un'immagine in scala di grigi e di conseguenza una bella immagine a colori, sembra che faccia una sorta di segmentazione del colore per me, che cosa sta succedendo esattamente lì?Cosa fa matplotlib `imshow (interpolation = 'nearest')` do?

Vorrei anche ottenere qualcosa come questo per l'elaborazione delle immagini, c'è qualche funzione su array numpy come interpolate('nearest') là fuori?

EDIT: favore correggetemi se sbaglio, sembra che lo fa semplice raggruppamento di pixel (cluster sono i colori della corrispondente mappa di colori) e la parola 'vicina' dice che ci vuole il colore mappa colore più vicino (probabilmente nello spazio RGB) per decidere a quale cluster appartiene il pixel.

+0

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

risposta

12

interpolation='nearest' visualizza semplicemente un'immagine senza tentare di interpolare tra pixel se la risoluzione dello schermo non è uguale alla risoluzione dell'immagine (che è il più delle volte il caso). Ne risulta un'immagine in cui i pixel vengono visualizzati come un quadrato di più pixel.

Non esiste alcuna relazione tra interpolation='nearest' e l'immagine in scala di grigi viene visualizzata a colori. Per impostazione predefinita, imshow utilizza la colormap jet per visualizzare un'immagine. Se si desidera che venga visualizzato in scala di grigi, chiamare il metodo gray() per selezionare la mappa di colori grigia.

+0

Grazie per il commento su colormap! Mi ha portato nella giusta direzione. – Alex