Я пытаюсь сделать поворот изображения поверхности изображения с другим азимутом и сохранить его как анимацию, но получаю следующие ошибки - PullRequest
0 голосов
/ 18 января 2019

Это мой код, и ошибки указаны в нижней части

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import animation
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from skimage.color import rgb2gray
import scipy.misc
from matplotlib import cm
PATH = "G:/MS Studies/Thesis/3750400-1.jpg"
img = mpimg.imread(PATH)
gray_img = rgb2gray(img)
lena = scipy.misc.imresize(gray_img, 0.15, interp='cubic')
xx, yy = np.mgrid[0:lena.shape[0], 0:lena.shape[1]]
fig = plt.figure()
ax = Axes3D(fig)
def init():
        ax.plot_surface(xx, yy, lena ,rstride=1, cstride=1, cmap=plt.cm.jet,
        linewidth=0);
        return fig
def animate(i):
        ax.view_init(elev=10., azim=i*4)
        return fig
ani = animation.FuncAnimation(fig, animate, init_func=init,
                               frames=90,interval=50, blit=True)
fn = 'rotate_azimuth_angle_3d_surf'
ani.save(fn+'.mp4',writer='ffmpeg',fps=1000/50)
ani.save(fn+'.gif',writer='imagemagick',fps=1000/50)

Две ошибки, которые я получаю:

  File "C:\Users\user\Anaconda3\lib\site-packages\matplotlib\animation.py", line 581, in finish
    self._frames[0].save(

IndexError: list index out of range


Traceback (most recent call last):
  File "C:\Users\user\Anaconda3\lib\site-packages\matplotlib\cbook\__init__.py", line 215, in process
    func(*args, **kwargs)
  File "C:\Users\user\Anaconda3\lib\site-packages\matplotlib\animation.py", line 1282, in _handle_resize
    self._init_draw()
  File "C:\Users\user\Anaconda3\lib\site-packages\matplotlib\animation.py", line 1748, in _init_draw
 for a in self._drawn_artists:

TypeError: 'Figure' object is not iterable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...