動画からスリットスキャン写真を自動生成する画像処理ソフト「Slit Scan Holic」をリリースしました

f:id:karaage:20170227010908j:plain:w640

スリットスキャン画像生成ソフトをつくるきっかけ

 以前参加したOgaki Mini Maker Faire2016でお隣だった、Masakazu Matsumotoさんが作成したTrainScannerという、動画からパノラマ写真を生成するソフトを知ったのが最初のきっかけです。

 動画から写真を生成するって、ありそうで意外にやってないアプローチだなと思い。自分もやってみたいなと密かに思っていました。そんな中、twitterのフォロワーさんの@Takahashi Toshio さんのスリットスキャン写真が、素晴らしくて衝撃を受けました。

tsoops
 Takahashi ToshioさんのWeb Site。Paradigm ShiftのMorphlingsからスリットスキャン写真が見られます

 即座に「これを真似したいリスペクトしよう!」と思いたったわけですが、そもそもスリットスキャンなんて撮影できる機材もテクニックもない!無ければソフトから自作しちゃえばいいじゃん!というわけで、動画からスリットスキャン写真を作るソフトを作ることにしたわけです。スリットスキャン動画のソフトは以前作ったことあるので、多分簡単にできるだろうという目算もありました。

Slit Scan Holicを使うとどんな写真が作れるの?

 というわけで作りました。

 以下みたいな動画から(下記はイメージのアニメGIFです) f:id:karaage:20170227010848g:plain:w640

 以下みたいな画像が生成されます f:id:karaage:20170227010908j:plain:w640

 フリー動画を提供して下さったロンスタ (id:lonestartx)さん。いつもありがとうございます!

 クオリティの低さは…ですが、動画をしっかり撮ればTakahashiさんみたいな芸術的な写真が撮れる…はず!

 スリットスキャンに関しては、以下の記事参照下さい。よくわからなかったら、何かうにょーんとした気持ち悪い写真ができるくらいに思っておいて下さい。

Slit Scan Holic 使い方

 基本的には以下の3ステップです

  • ダウンロードする
  • 起動する
  • 動画を読み込んで待つ

ダウンロードする

 以下からダウンロードできます

 Macの人はslit_scan_holic_for_mac_v0_1.zipをWindowsの人は32bitだったらslit_scan_holic_for_win32_v0_1.zip 64bitだったらslit_scan_holic_for_win64_v0_1.zipをダウンロードしてください(Windowsはテスト環境が無いのでノーチェックです。動かなかったらごめんなさい)。

起動する

 Slit Scan Holicを起動しましょう。ダウンロードしたzipファイルを解凍して、起動すると以下のような画面が表示されます。 f:id:karaage:20170228223548p:plain:w640

動画を読み込んで待つ

 少し待つとダイアログが表示されるので、好きな動画を読み込みましょう。動画の長さの目安は、プログレッシブな動画だと60フレーム/秒なので、例えば640x480のサイズだと8秒程度。1920x1080だと18秒程度の動画が必要になります。

f:id:karaage:20170228223643p:plain:w640

 とりあえず適当に試したい場合は、以下のフリー動画をダウンロードして試してみてください。

サンプル動画ファイルへのリンク

 あとは、ひたすら待つだけです。かなり時間かかります。一応左上に進捗がパーセンテージで表示されます。

f:id:karaage:20170228223717p:plain:w640

f:id:karaage:20170228224308p:plain:w640

まとめ

 動画からスリットスキャン写真を自動生成する画像処理ソフト「Slit Scan Holic」を作ってリリースしました。開発に使うソフトは何にしようか迷ったのですが、多くの人に簡単に使ってもらえるということで、MacとWinに対応した実行形式のファイルを簡単に作成できる「Processing」を使いました。多分pythonのソースコード公開して好きに使ってだとかなりハードルが上がってしまうので。操作は、細かいパラメータ調整は無しで読み込んで作成するだけにしてあります。動画の方で調整してねという潔いスタイル(ということにして下さい)。

 メインの処理の部分は4行程度で、1時間もかからず動かせたのですが、ある程度使いやすいように最低限の動画の入力と画像の出力の部分を作ったら結局1週間くらい(平日に1時間x5日=5時間程度)かかってしまいました。やっぱり人に使ってもらうこと想定して作ってリリースするまでやると、趣味レベルでもなかなか大変ですね。

 おかげで速度は劇的に遅いです。正直自分でもちょっと引くくらい遅いです。遅いのは動画読み込みの部分だと思います。いくらでも高速化できると思いますが、今回は力尽きたのであきらめます。

 ソースコードはGitHubで公開します(ライセンスはMIT)ので、お好きに使用下さい。C++とかで誰かが超絶高速化してくれたら泣いて喜びます。

関連記事

参考サイト