1
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?

InfocomAdvent Calendar 2024

Day 21

被写界深度合成に挑戦

Last updated at Posted at 2024-12-21

これはInfocom Advent Calendar 2024 21日目の記事です。

被写界深度合成に挑戦

デジカメを使った被写界深度合成にMacで挑戦してみました。

こんな流れで手順を説明します。

  • 被写界深度合成とは?
  • パナソニックのデジカメでフォーカスセレクト撮影
  • 撮影した画像(mpeg4)からFFmpegを使って各フレームの画像を取得
  • Affinity Photoのフォーカス結合機能を使って深度合成画像を生成

被写界深度合成とは?

被写界深度合成は、写真や画像の技術の一つです。
複数の写真を合成して、よりくっきりとした画像を作り出します。
特に、被写体全体にピントが合っている写真を作りたいときに使われます。

以下の写真はテーブルの上に模型を並べて撮影したサンプルです。
手前のスズキ・カナタにフォーカスが合っており、奥のドゥカティ・デスモセディチはぼやけています。
s_P1070008.jpg

深度合成を行うとこのような写真になります。
s_1.jpg

パナソニックのデジカメでフォーカスセレクト撮影

私が所有するデジカメ(DMC-TX1 ※生産終了)にはフォーカスセレクト機能があり、自動でフォーカスを変えながら撮影することができます。
※フォーカスセレクトは他機種にも搭載されています。しかも最新機種ではカメラ上で合成できる機種もあるようです。気になる方はメーカーのサイトをチェックしてみてください。
s_IMG_2390.jpg

撮影した後はカメラを操作して任意のフォーカス画像を取得することが可能です。
s_IMG_2388.jpg
s_IMG_2389.jpg

取得した後は後述する写真編集ソフトで合成します。しかし、一枚ずつ選択操作して保存するのは面倒です。
フォーカスセレクトで撮影した画像を確認したところ、mpeg4で保存されていました。
mpeg4から各フレームの画像を取得できれば面倒な操作から解放されそうです。

撮影した画像(mpeg4)からFFmpegを使って各フレームの画像を取得

ここからITっぽい話題になります。
FFmpegを使って各フレームの画像を取得します。
毎回コマンド実行は面倒臭いのでシェルスクリプトを組みます。
今回はFinderから実行したいので、拡張子は「.command」にします。
Finderから実行するとカレントパスがHomeになってしまいます。スクリプトにカレントパスへ移動する処理も追記しました。

#!/bin/zsh

# カレントパスに移動
cd `dirname $0`

ls

for file in *.MP4; do
  # ファイルが存在しない場合はスキップ
  [ -e "$file" ] || continue
  
  # ファイル名から拡張子を除去
  filename="${file%.*}"
  
  # ffmpegコマンドを実行
  ffmpeg -i "$file" "${filename}_%03d.png"
  
  echo "Processed: $file -> ${filename}_%03d.png"
done

read -p "Press any key."

スクリプトを実行します。
s_スクリーンショット 2024-12-21 19.16.17.jpg

無事に各フレームの画像を取得することができました。
このケースだと45枚の画像が出力されました。
s_スクリーンショット 2024-12-21 16.47.55.jpg

Affinity Photoのフォーカス結合機能を使って深度合成画像を生成

出力された画像を結合します。
Photoshopでも対応できますが、私はAffinity Photoを使っています。

「新規フォーカス結合」メニューから出力画像をまとめて選択すると合成が始まります。
合成中の様子はこのように出力されます。
s_スクリーンショット 2024-12-21 16.50.12.jpg

あと少し・・・
s_スクリーンショット 2024-12-21 16.50.16.jpg

完成しました!
s_スクリーンショット 2024-12-21 16.49.08.jpg

出力サンプル

その1

s_P1070008.jpg

深度合成結果(45枚、ファイルサイズ合計583MB)
s_1.jpg

その2

s_P1070011.jpg

深度合成結果(45枚、ファイルサイズ合計587MB)
構造物が重なっている場合でも綺麗に合成できています。
(アングルや各種条件によっては境界部分が滲むこともあります)
s_2.jpg

終わりに

今回のサンプルでは50枚程度の合成になりましたが、アングルによっては200枚近くの画像が生成されるケースもあります。ファイルサイズ合計も2GB程度になります。
私のMac(M1 MacBookAir 16GBメモリ)では特に問題ありませんが、メモリが少なめのPCを使っている場合は注意が必要かもしれません。

深度合成は写真の表現の幅が広がりますので、面白い手法と思います。

1
0
2

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
1
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?