#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. Этого будет достаточно! Спасибо 🙂