Извлеките изображение (jpg) из окна lib математического сюжета - PullRequest
0 голосов
/ 09 декабря 2018

Я постарался найти способ сделать копию содержимого окна из matplotlib непосредственно в память - я хотел бы не сохранять его в промежуточный файл PNG, просто чтобы прочитать его обратно в память, как показано ниже.Любые рекомендации?спасибо.

from matplotlib import pyplot as plt
# draw into window with detected objects bounding boxes
ax = utils.viz.plot_bbox(img, bbox, scores=scores, labels=labels,
                                 thresh=ARGS.thresh, class_names=CLASSNAMES,
                                 absolute_coordinates=False)
plt.show(block=False)
# capture contents of window to disk
plt.savefig ('out.png')  
# read from disk for use down stream
img2 = cv2.imread('out.png')
# use img2 down stream

спасибо

1 Ответ

0 голосов
/ 09 декабря 2018

Вы можете использовать fig.canvas.tostring_rgb.Вот пример кода, подробности в комментариях.

# create a dummy image to plot
img = np.random.randint(255, size=(20,20,3))

# you need a figure to use canvas methods
# if you didn't create yours you can probably get it with plt.gcf()
fig, ax = plt.subplots()

# plot your stuff
ax.imshow(img)
# force draw
fig.canvas.draw()
# save buffer
w, h = fig.canvas.get_width_height()
buffer = np.frombuffer(fig.canvas.tostring_rgb(), dtype=np.uint8).reshape(h, w, 3)

# display your plot
plt.show()

# look at the buffer
fig, ax = plt.subplots()
ax.imshow(buffer)
plt.show()

Первый участок

figure 1

Экспортированный буфер

buffer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...