気の利いたサイト名なんておもいつかねーよ

フレーム蓄積型カメラに見える&タイムインポーズ汎用ドライバ

最終更新:

kapaer

- view
管理者のみ編集可
長時間露出時に1秒に1コマしか画像が表示されない(1秒露出時)という仕様で製作しましたが、
製作は比較的簡単ですが使い勝手という意味ではやはり微妙です。
使用するキャプチャデバイスによってはコマ落ちすることもあり、画像のフレームが落ちるとどうにもならなくなります。

そこで、PC限定となりますが、蓄積型ビデオカメラと同じように画像を出力するドライバを書いてみます。
画像の無いコマを直前の画像で置き換える、またはFPSを落として画像のあるフレームだけを出力するドライバです。
ついでに、PHD Guiding でうまく認識しないデバイスでも使用できるようにします。
まあ、これは私の買ったキャプチャがうまく動作しなかったからなんですがw
WDMに対応しているカメラ/キャプチャなら、大抵動作するようになるはずです(ふぬああでキャプチャ出来る物)。

ついでに、キャプチャした画像に時刻をインポーズすることも出来ます。

元の画像出力(イメージ画像)

ドライバを介した出力(イメージ画像)

仕組みは簡単で、キャプチャデバイスに見える仮想ドライバを作って、その中で本物のカメラに接続、画像処理をしてからアプリケーションに渡しています。

PHDGuidingから使用するなら、WDMデバイスの中から、

"Virtual Cam Capture" を選択します。

実際に使用するデバイスを尋ねてくるので、使用するデバイスを選択します。

選択したカメラのプロパティが出てくるので、適当に設定します。
画質は後で設定できるので、入力形式(NTSCとかPALとか・ビデオキャプチャの場合のみ)と画像解像度を設定すれば良いです。

すると、PHDや他のキャプチャソフトからは、選択した解像度「のみ」を持ったデバイスとして認識されます。
なお、内部ではRGB24形式で処理しているので、出力は必ずRGB24になります。
これ以降、解像度の設定は出来ないので、変更したい時はデバイスの選択からやり直してください。

このドライバのプロパティ画面です。
右下の2つのボタンから、入力元デバイスの入力切替や画質の設定が出来ます。

右のグラフは、フレームの明るさレベルと閾値を表示しています。
"Use Long-Exporse Capture"をチェックすると、画像の明るさが閾値以下になると、最後に出力したフレームで置き換えて出力するようになります(蓄積型ビデオモード)。
つまり、FPSは変わらず、同じ画像が何度も出力されることになります。
"auto"だと自動的に閾値を設定してくれますが、グラフ中の最小値と最大値から求めているので、外光が突然入ったり、偶然明るい流星が入ったりすると、しばらくの間暗い画像がコマ落ちする可能性があるのでお勧めしません

"Capture only valid Frame"をチェックすると、閾値以上のフレームのみを出力するようになります。
この場合、FPSは1秒露出なら1FPSになります。ただし、録画したファイルを再生する時には元のFPSになるので早送りになります。LIVEで見たりオートガイドの時は問題ありません。
また、PHDで画像をスタックする処理が重いようなので、このオプションを入れるとスタック枚数が減って負荷が下がります。

"Insert TimeText"は、出力する画像の右下に時刻情報(GMT)を表示します。
Windowsの仕様上、Windowsの時計が正確でも±数msの誤差(ゆらぎ)が出ます。
Windowsの時計が狂っていても、手元にGHSなどの正確な時計があるなら、"Adj"にms単位で数値を入力することで補正することが出来ます。

NTPなどを使用していてWindowsの時計が正確でも、表示される時刻はPCに取り込まれた時の時刻なので、シャッターが切られた時刻よりも若干の遅れがあります。
これを補正するには、プロパティ画面に表示されている時計を撮影して手動で補正するか、次に述べる方法で簡易的に補正することが出来ます。
"TimeAdjust"ボタンを押すと、グラフエリアが黒くなってメッセージが出るので、カメラに迷光が入らないようにグラフエリアに押し当てて"OK"を押して数秒待つと、成功又は失敗のメッセージが出ます。
簡易的なので、±1フレームぐらいの誤差が残るので注意してください

※画面に表示されている時計を撮影する時は、Windowsの画面は決まったリフレッシュレートで書き換えられているので、0~リフレッシュレート分の遅れが出ることに注意してください。




.