如何绘制超过24,000张图像并将其另存为视频?

时间:2017-04-25 23:49:43

标签: python animation time-series data-visualization bounding-box

  1. 有超过24,000个2d(x,y)和3d(x3d,y3d,z3d)点
  2. 点数在数据库中排序,每个数据库都有一个标签......有三种类型的标签(A,B,C)
  3. 每个标签都有匹配的图片
  4. 所有行按时间排序
  5. 在将2d点绘制成方框后,我需要将这些文件设置为视频动画。

    此代码保存图像,但这需要花费大量时间并且已经失败了两次。

    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')
    

1 个答案:

答案 0 :(得分:0)

遗憾的是,除了上面提供的解决方案之外,找不到任何其他解决方案并继续创建照片系列,每当我的计算机崩溃时,我都会更改起始范围ex。

 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