Создать фигуру matplotlib из массива rgb

#image #matplotlib

#изображение #matplotlib

Вопрос:

У меня есть изображение png, которое я хотел бы превратить в фигуру matplotlib. Я могу превратить изображение png в matplotlib.image.Создайте объект AxesImage, выполнив следующие действия (хотя, вероятно, есть лучший способ):

 import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

def rgba2rgb(rgba, background=(255,255,255)):
    row, col, ch = rgba.shape

    if ch == 3:
        return rgba

    assert ch == 4, 'RGBA image has 4 channels.'

    rgb = np.zeros( (row, col, 3), dtype='float32' )
    r, g, b, a = rgba[:,:,0], rgba[:,:,1], rgba[:,:,2], rgba[:,:,3]

    a = np.asarray( a, dtype='float32' )/255

    R, G, B = background

    rgb[:,:,0] = r * a   (1.0 - a) * R
    rgb[:,:,1] = g * a   (1.0 - a) * G
    rgb[:,:,2] = b * a   (1.0 - a) * B

    return np.asarray( rgb, dtype='uint8' )

img = Image.open('image.png')
rgba_arr = np.array(img)
rgb_array = rgba2rgb(rgba_arr)
plt_img = plt.imshow(rgb_array, aspect='auto')

 

Опять же, основная проблема, с которой я сталкиваюсь, заключается в том, что результатом plt.imshow является файл matplotlib.image.Осевое изображение, а не фигура matplotlib. Как я могу сделать это фигурой? Спасибо.

Комментарии:

1. Вы имеете в виду это? moonbooks.org/Articles /…

2. Этого будет достаточно! Спасибо 🙂