[PYTHON] Schneiden Sie JPEG für Zeitraffer aus Theta S-Video aus

Zweck

Speichert JPEG für jedes angegebene Bild aus dem mit Theta S aufgenommenen Video. (Es ist in Ordnung, ein Video aufzunehmen, aber es ist ziemlich schwierig, alles in Echtzeit zu sehen. Deshalb mache ich ein Zeitraffervideo als verkürzte Version.)

Wenn Sie das unten ausgeschnittene JPEG mit Theta + App im Zeitraffer verschieben, wird das Video gedämpft. Darüber hinaus scheint die Theta + App in der Lage zu sein, Zeitraffervideos mit nur bis zu 300 JPEGs zu erstellen. Wenn dies mehr ist, wählen Sie Lapse It Time Lapse Pro App .ui.LapseItPro).

Referenzseite

Ich habe nicht die Fähigkeiten, von Anfang an zu schreiben, also habe ich mir von verschiedenen Orten geliehen ^^; Danke.

  1. Installieren Sie OpenCV3.0 in der Python3.0-Umgebung http://retrofocus28.blogspot.jp/2015/08/python3-opencv3windows.html
  2. Importieren Sie Videodateien mit OpenCV3.0 http://derivecv.tumblr.com/post/73561473978

Wie benutzt man

python mp42jpg.py MP4FileName [FrameInterval] FrameInterval gibt an, wie viele Frames als JPEG gespeichert werden sollen. Der Standardwert ist 120 (ThetaS-Video ist ungefähr 15 fps, also 15 fps x alle 8 Sekunden) pro Frame.

Quelle

mp42jpg.py


import cv2
import os.path
import sys

interval = 120  #about 15fps*8sec

if len(sys.argv) >= 2 and len(sys.argv) <= 3:
    filename = sys.argv[1]
    if len(sys.argv)==3:
        interval = int(sys.argv[2] )
else:
    print('Usage: python %s mp4_filename [frame_interval]' % sys.argv[0])
    quit()

cap = cv2.VideoCapture(filename)
max_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)
file_basename, ext = os.path.splitext(filename)
ret = cap.grab()

while(ret):
    frame_count = cap.get(cv2.CAP_PROP_POS_FRAMES)
#    ret, frame = cap.read()
    ret, frame = cap.retrieve()
    
    if ret :

        #cv2.imshow('frame',frame)
        print("frame count:%d" % frame_count)
        cv2.imwrite('%s_%d.jpg' % (file_basename,frame_count),frame)
        if (frame_count + interval ) > max_frames:
            break;
        cap.set(cv2.CAP_PROP_POS_FRAMES,frame_count+interval)
        
#        if cv2.waitKey(1) & 0xFF == ord('q'):
#            break

cap.release()
#cv2.destroyAllWindows()

Wenn Sie imshow mit dem obigen Kommentar ausführen, wird es im Fenster angezeigt.

Recommended Posts

Schneiden Sie JPEG für Zeitraffer aus Theta S-Video aus
Schneiden Sie mit Python + OpenCV jede Sekunde ein Bild aus einem Video aus
Ich habe versucht, ein Standbild aus dem Video auszuschneiden