Verwendung von cv2.VideoWriter
cv2.VideoWriter(filename, fourcc, fps, frameSize[, isColor])
- Dateiname: Speicherpfad des Videos
- fourcc: Geben Sie den Encoder an
- fps: Videobildrate
- frameSize: Bildgröße
- isColor: Schwarz-Weiß-Bild oder Farbbild
Beispiel
first_frame = cv2.imdecode(np.fromfile(img_names[0],dtype=np.uint8),-1)
vid_writer = cv2.VideoWriter(filename=rf'{label_dir}\{index}.mp4', fourcc=cv2.VideoWriter_fourcc(*'XVID'), fps=fps, frameSize=(first_frame.shape[1],first_frame.shape[0]))
for i in os.listdir(img_names):
img = cv2.imdecode(np.fromfile(img_names[i],dtype=np.uint8),-1)
img2 = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) # 如果是灰度图需要加这行
vid_writer.write(img2)
img_names ist eine Liste von Bildpfaden, die zum Generieren des Videos verwendet werden.
fehleranfälliger Ort
- Wenn der Bildpfad in Chinesisch vorhanden ist , verwenden Sie ihn,
cv2.imdecode(np.fromfile(img_names[0],dtype=np.uint8),-1)
um das Bild einzulesen, anstatt zu verwendencv2.imread
- Wenn Sie den frameSize-Parameter manuell angeben, stellen Sie sicher, dass die angegebene Größe der Größe des gelesenen Bildes entspricht
- Wenn Sie den frameSize-Parameter entsprechend der Eingabebildgröße wie im Beispiel angeben, müssen Sie darauf achten, dass frameSize nicht als first_frame.shape[:2] angegeben werden kann, da die Ausgabe von first_frame.shape [Höhe, Breite, Zahl ist der Kanäle] und frameSize=[Breite, Höhe], also muss die Reihenfolge umgekehrt werden
- Wenn das Bild ein Graustufenbild ist , müssen Sie
img2 = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
es zuerst in das BGR-Format konvertieren ( dieser Blog ).