プレゼン動画からスライド部分を自動的にスクリーンショットし、それをパワーポイントに1ページずつ貼り付ける自動化のプロセスには、画像処理とPPT生成の技術を組み合わせることが必要です。手順と必要なツール、またチェックリストやアイデアをまとめました。
1. 必要なもの
Python: 自動化スクリプトの作成
OpenCV: 動画のフレーム抽出と画像処理(Pythonライブラリ)
Pillow: Pythonでの画像処理ライブラリ
PyAutoGUI または PyTesseract: 発表スライド部分の抽出補助と認識用
python-pptx: PowerPointファイルの作成と編集
2. 自動化方法の詳細
ステップ1: 動画のフレーム抽出
import cv2
cap = cv2.VideoCapture("presentation_video.mp4")
frame_rate = 1 # 1フレーム毎にキャプチャ
count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
if int(cap.get(cv2.CAP_PROP_POS_FRAMES)) % frame_rate == 0:
cv2.imwrite(f"frame{count}.jpg", frame)
count += 1
cap.release()
ステップ2: スライド部分の抽出
スライド領域の認識: 発表者がスライド以外に表示されている場合、OpenCVやPyAutoGUIを使って顔や背景色でスライド領域を除外し、スライドのみの領域をトリミング。
スライドのフィルタリング: PyTesseractなどで、重複するスライド(同じ画像が続く場合)を検出し、1枚だけ保存。
ステップ3: PowerPointファイルに貼り付け
from pptx import Presentation
from pptx.util import Inches
prs = Presentation()
slide_layout = prs.slide_layouts[5] # 白紙スライドレイアウト
image_files = ["frame0.jpg", "frame1.jpg"] # 保存した画像ファイルリスト
for image_file in image_files:
slide = prs.slides.add_slide(slide_layout)
slide.shapes.add_picture(image_file, Inches(0), Inches(0), width=prs.slide_width)
prs.save("output_presentation.pptx")
ここから先は
¥ 1,000
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?