首页 > 解决方案 > 为什么python中的cv2.VideoWriter会改变定义的颜色

问题描述

在下面的代码中,我定义了fc='#fff300'RGB所在的矩形的颜色(255,163,0)。因此,视频的所有帧都应该具有上述颜色,但视频的RGB(36,255,219)完全是另一种颜色。

我想知道如何保持视频矩形的颜色?

import matplotlib.pyplot as plt
import numpy as np
from cv2 import VideoWriter, VideoWriter_fourcc


pixels = 600
my_dpi = 100
FPS=1

for i in range(5):
    fig = plt.figure(5,figsize=( pixels/my_dpi,  pixels/my_dpi),facecolor='k', dpi=my_dpi)  
    plt.axes([0,0,1,1])
    rectangle = plt.Rectangle((-300, -300), 600, 600, fc='#fff300')
    plt.gca().add_patch(rectangle)
    plt.savefig('1.png',dpi=my_dpi)
    plt.show()
    
    fig.canvas.draw()  # draw the figure 
       
    data = np.frombuffer(fig.canvas.tostring_rgb(), dtype=np.uint8)  #  save it to a numpy array.
    data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,)) 
    
    fourcc = VideoWriter_fourcc(*'MP42')
    video = VideoWriter(('1.mp4'), fourcc, FPS, (pixels, pixels))
    
    video.write(data)
video.release()

标签: pythonimagematplotlibvideorgb

解决方案


推荐阅读