1
  1. 有超過24000 2D(X,Y)和3D(X3D,y3d,Z3D)指出
  2. 點在數據庫中進行排序每一個標籤......有三種類型的標籤(A ,B,C)
  3. 每個標籤都有一個匹配的圖像
  4. 所有行被時間

我需要爲一個框繪製2D點後,將這些文件作爲視頻動畫進行排序。如何繪製超過24萬張圖片並將其保存爲視頻?

此代碼可以保存圖像,但需要花費很多時間並且失敗了兩次。

ima = np.array(Image.open('a.png'), dtype=np.uint8) 
imb = np.array(Image.open('b.png'), dtype=np.uint8) 
imc = np.array(Image.open('c.png'), dtype=np.uint8) 

# Create figure and axes 
fig,ax = plt.subplots(1) 
patch = patches.Rectangle((0, 0), 0, 0, fc='y') 

for i in range(bb_2d_br_y.count()): 
    # Create figure and axes 
    fig,ax = plt.subplots(1) 
    height = bb_2d_br_y[i] - bb_2d_tl_y[i] 

    weidth = bb_2d_br_x[i] - bb_2d_tl_x[i] 

    # Create a Rectangle patch 
    rect = patches.Rectangle((centre_2d_x[i], centre_2d_y[i]), weidth, height, linewidth=1, 
          edgecolor='r', facecolor='none') 

    if locations[i] == 'a': 
     ax.imshow(ima) 
    elif locations[i] == 'b': 
     ax.imshow(imb) 
    else: #c 
     ax.imshow(imc) 

    # Add the patch to the Axes 
    ax.add_patch(rect) 

    fig.savefig(my_path + '/graph' + str(i) + '.png') 
+0

問題[** _如何爲Matplot的時間排序序列創建動畫lib plot _ **](http://stackoverflow.com/questions/6686550/how-to-animate-a-time-ordered-sequence-of-matplotlib-plots)有一些建議。 – martineau

+0

我嘗試過不同的解決方案,但我仍然有相同的問題,你有任何建議來做這項工作,圖書館或其他編程語言? –

+0

你從來沒有真正說過失敗在哪裏。如果圖像可以轉換爲GIF,則PIL模塊能夠創建動畫GIF文件。那麼免費的第三方ImageMagick軟件包(它有一個名爲PythonMagick的Python綁定)也可以。有動畫GIF到MP4視頻轉換器可用。無論你如何操作,處理24K圖像都需要相當長的時間。 – martineau

回答

0

遺憾的是無法找到除上文所提供的任何其它的解決方案,並保持創建照片系列,每當我的電腦crashs我更改開始前的範圍。

range(x, bb_2d_br_y.count()) 

x是我最後一次創建的索引

然後我創建了一個(不好的,我認爲)分辨率的視頻,但速度不夠快使用的ffmpeg庫使用

這個帖子

Python: Make a video using several .png images

ffmpeg -f image2 -r 24 -i graph%d.png -vcodec mpeg4 -y movie.mp4 
相關問題