0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

がちもとさんAdvent Calendar 2023

Day 16

横長の画像から横スクロール動画をつくーる(Python、OpenCV)

Last updated at Posted at 2023-12-15

はじめに

がちもとさんアドベントカレンダー16日目の記事です。
今日は、横長の画像から横スクロール画像を作ります。

開発環境

  • Windows 11 PC
  • Python 3.11

導入

1.ライブラリのインストール

pip install opencv-python

2.横長の画像を用意(昨日の結果を用います。)

3.プログラムを作成

png2mp4.py
import cv2
import numpy as np

# 入力画像ファイル名
input_image_file = 'result.png'

# 出力動画ファイル名
output_video_file = 'result.mp4'

# 入力画像の読み込み
input_image = cv2.imread(input_image_file)

# 入力画像のサイズを取得
height, width, _ = input_image.shape
print(height, width)

# 出力動画の設定
fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # 動画コーデックを設定
output_video = cv2.VideoWriter(output_video_file, fourcc, 60.0, (1024, 1024))  # 動画ファイルを作成

# ROIを指定する左上座標とサイズ
roi_x = 0  # 初期位置

# ROIを横にスクロールさせながら動画を作成
for i in range(0, width-1024, 1):
    # ROIを切り取る
    roi = input_image[:, i:i + 1024, :].copy()
    # 動画にROIを追加
    output_video.write(roi)

# 動画をクローズ
output_video.release()

# ウィンドウを閉じる
cv2.destroyAllWindows()
コード解説

1.cv2モジュールとnumpyモジュールをインポートします。

2.入力画像ファイル名と出力動画ファイル名を設定します。

3.入力画像を読み込みます。

4.入力画像の高さと幅を取得し、変数 height と width に格納します。

5.出力動画の設定を行います。動画のコーデックは 'mp4v' を使用し、1秒あたり60フレーム、フレームのサイズを1024x1024に設定します。

6.ROI(Region of Interest)を指定するための変数 roi_x を初期化します。

7.ROIを横にスクロールさせながら、動画を作成します。ループを使用して、ROIが画像の左端から右端まで移動するようにします。

8.各イテレーションで、ROIを切り取り、それを出力動画に追加します。

9.動画の作成が終了したら、出力動画ファイルを閉じます。

10.最後に、すべてのウィンドウを閉じます。

実行結果

お疲れさまでした

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?