Как напрямую прочитать изображение как массив из рисунка pyplot? - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу прочитать текущее представление рисунка pyplot в виде массива без сохранения файла и его загрузки.

Сначала я попытался построить данные, сохранить их и загрузить с помощью imread.Но я предполагаю, что это сохранение и загрузка снижает эффективность использования времени задачи.

# Plotting
plt.plot(data_x, data_y, data_z)
plt.savefile('output.png')
plt.close()

# Load image as numpy array
im = cv2.read('output.png')

Как я могу изменить этот код для выполнения той же работы, но повысить эффективность времени?

1 Ответ

0 голосов
/ 26 сентября 2019

Извините, что беспокою вас.Мой код должен видеть трехмерную модель скелетных суставов (каждый соседний сустав соединен линией) в трехмерной координате.

import matplotlib.pyplot as plt
import numpy as np


def draw_3D_model(file_name)
   fig = plt.figure()
   ax = plt.axes(projection = '3d')
   ax.grid(False)
   ax.view_init(azim = -90,elev = -50)

   draw_skeleton(file_name)   # this is the function I made to draw a line between neighbor joints(only used plt.plot()

   return fig


def make_animation   
   for file_name in file_names:
      fig = draw_3D_model(file_name)
      fig.canvas.draw ( )
      w,h = fig.canvas.get_width_height()
      buf = numpy.fromstring ( fig.canvas.tostring_argb(), dtype=numpy.uint8 )
      buf.shape = ( w, h,4 )

Это упрощенная структура моего кода, и при выполнении buf.shape = (w, h, 4) отображается сообщение об ошибке, что размер buf не может быть изменен на (w, h, 4).

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