2012-09-18 23 views
7

Utilizo la función imshow con interpolation='nearest' en una imagen en escala de grises y obtengo una bonita imagen en color como resultado, parece que tiene algún tipo de segmentación de color para mí, ¿qué está pasando exactamente allí?¿Qué matplotlib `imshow (interpolación = 'más cercano')` hacer?

También me gustaría obtener algo como esto para el procesamiento de imágenes, ¿hay alguna función en matrices numpy como interpolate('nearest') por ahí?

EDIT: Por favor, corríjanme si me equivoco, se ve como lo hace la agrupación de píxeles sencilla (racimos son colores del mapa de colores correspondiente) y la palabra 'más cercana' dice que toma el color de mapa de color más cercano (probablemente en el espacio RGB) para decidir a qué grupo pertenece el píxel.

+0

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

Respuesta

12

interpolation='nearest' simplemente muestra una imagen sin intentar interpolar entre los píxeles si la resolución de la pantalla no es la misma que la resolución de la imagen (que suele ser el caso). Se obtendrá una imagen en la que los píxeles se muestran como un cuadrado de múltiples píxeles. No hay relación entre interpolation='nearest' y la imagen en escala de grises que se muestra en color. De forma predeterminada, imshow usa el mapa de colores jet para mostrar una imagen. Si desea que se muestre en escala de grises, llame al método gray() para seleccionar el mapa de color gris.

+0

Gracias por la comenta sobre colormap! Me llevó en la dirección correcta. – Alex