動画を一秒づつ自動で画像にしてみた。
ハウスメーカーとの打ち合わせで、こだわりのなさがこだわりのGuchiです。いきなりのカミングアウトすみません。
(ネットの通信速度重視ですから。)
動画を一秒づつ自動で画像にしてみる。
まぁこれは別に、Pythonでしなくてもいいんですが、私の場合は、Pythonの方が楽に出来ます。
もしかしたら、家屋調査とかに使えるかもしれません。
(これでも、私は、一応、理学療法士の資格を持っている身なのでw)
すべて自動でできれば楽ですよね。働き方が自称データサイエンティスト+セラピストなのですが、リハビリ部内に一人くらい、私みたいな人が居てもいいかもしれません。
自意識過剰ですみません。
階層的に作っています。
OpenCVのインストールはこちら↓↓
import cv2
from os import makedirs
from os.path import splitext, dirname, basename, join
def save_frames(video_path: str, frame_dir: str,
name="image", ext="png"):
cap = cv2.VideoCapture(video_path)
if not cap.isOpened():
return
v_name = splitext(basename(video_path))[0]
if frame_dir[-1:] == "\\" or frame_dir[-1:] == "/":
frame_dir = dirname(frame_dir)
frame_dir_ = join(frame_dir, v_name)makedirs(frame_dir_, exist_ok=True)
base_path = join(frame_dir_, name)idx = 0
while cap.isOpened():
idx += 1
ret, frame = cap.read()
if ret:
if cap.get(cv2.CAP_PROP_POS_FRAMES) == 1:
cv2.imwrite("{}_{}.{}".format(base_path, "0000", ext),
frame)
elif idx < cap.get(cv2.CAP_PROP_FPS):
continue
else: #
second = int(cap.get(cv2.CAP_PROP_POS_FRAMES)/idx)
filled_second = str(second).zfill(4)
cv2.imwrite("{}_{}.{}".format(base_path, filled_second, ext),
frame)
idx = 0
else:
breaksave_frames("movie_path", ".//folder_path")
なんかややこしいけど、できやした。
明日も仕事です。頑張りましょう。
最近、Rに触れてないなー。
今度、R系のしょうもない記事を書いてみます。
前回の記事↓
意思決定曲線分析関連↓