あさりのみそしるダイアリー

おトク情報毎日更新!だから毎日見に来いやゴルァ!!…うっ、ごめんね(´・ω・`)

久しぶりの?C++

久しぶりにC++でプログラミングをしました。

いや、久しぶりっていうか・・・?



まぁ、いいや。

てか、わかんないね、これ。むずかしい。

C#でやったら、いつものようにさっさと終わったんだろうけど、そのうちC++使うようになるかもしれないと思って、今回はあえて自分用のツールをC++で作った次第です。


ツールとしては、設置したライブカメラで撮影したインターバル画像を、1日分を1つの動画にまとめるものを作ろうと思いまして。

OpenCVで複数枚の静止画を動画にします。


いろいろ試行錯誤しつつ、6時間くらいかけてようやくものになりました。
慣れないですよねー。


イメージ 1

こんな感じで、インターバル画像が含まれるフォルダと、動画の出力先(ディレクトリのみ、ファイル名は「result.avi」で固定)を指定します。「参照」を押すと、フォルダダイアログからフォルダを指定できます。

フレームレートと解像度も指定できます。
数字以外の文字が含まれたり、解像度のフォーマットが(横幅)x(縦幅)になっていなかったりする場合はちゃんとはじきます。

ビデオの圧縮ダイアログは、OpenCVのcvCreateVideoWriterにフォーマットを明示せず「-1」を渡してやると勝手に出てきます。

いつも投稿しているインターバル動画は、1秒間に10枚の画像を表示するようにしているので、フレームレートは10です。
ライブカメラから受信する画像の解像度は640x480なので、それに合わせます。


イメージ 2

画像は1日当たり1400枚以上あるので、時間がかかります。

あと、生成中は進捗状況をプログレスバーで表示できるようにしたのですが、なぜかうまく動いてくれません・・・。

最終的に動画は出力されるのでいいんだけど。



これが出力された動画。
音声ファイルをミックスしていないので、当然、絵だけです。
てか、音声までは、やらないかな。そこはWindowsムービーメーカーでいいです。

ちょっと文字が欠けたような感じになってます・・・って書こうと思っていたんですが、YouTubeに上げた動画は、まともでした。なんでだろ。

まぁ、いいや。



ここにBGMを加えれば、作業はおしまい。
1400枚以上の画像をムービーメーカーにつっこむと、けっこう重たいんだけど、これなら問題ないかな。



今回のツールで出力したものではなく、ムービーメーカーで作成したものですが、完成形としてはこんな感じになります。

まぁ、とりあえずモノとしてはこれでいいや。

どちらかというと、フロントエンドに近い感もしますが、まぁ、いいや。


う~ん、C++はむずいなって感想しかないな。