DELPHI6P or XE3 starter + Win7
お世話になります。WEBカメラで鳥をモニタリングしたり自動撮影(静止画)したりしています。ソフトはVBで作ったりDelphiで作ったりしてきましたが最近の高解像度のカメラを買っても今まで参考にしてきたサンプル(例:http://www1.iwate-ed.jp/tantou/joho/material/interval_shot/)ではどれも640x480になってしまいます。高解像度のカメラに対応できるようにできる方法、サンプルなどご存知でしたら教えてください。
ここでキャプチャサイズを決めてるんじゃないですか?
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> ...
> CaptureWidth :=640;
> CaptureHeight :=480;
通りすがり様 ご回答いただき、ありがとうございます。
以前作成していたXPでのソースがPCの入れ替えで紛失したため基本部分を再現
して試してみました。
これで確かにTImageのサイズに従って描画されましたが、良く見ると単に
StretchBltみたいに単に枡目が大きくなっただけのように見えました。
WEBカメラ付属のソフトと比較すると解像度は全く改善されていないようで斜めの
線が階段状に見えました。やりかたが悪いのか原因がどうもわかりません。
WM_CAP_SET_SCALE message
https://msdn.microsoft.com/en-us/library/windows/desktop/dd757729.aspx
のwParamの説明に
> Preview scaling flag. Specify TRUE for this parameter to stretch preview frames to the size of the capture window or FALSE to display them at their natural size.
とありますが、これを含めてcapCreateCaptureWindowAの呼出以降の処理を確認してみたらいかがでしょう?
通りすがり様 アドバイスをありがとうございました。
capCreateCaptureWindowAなどの各パラメーターの機能などを理解せずにいろいろいじってみましたが今のところ解決できないでいます。
基本的な理解、知識を深めないと解決できないように思われますので関連するノウハウを勉強したいと思います。
> Preview scaling flag. Specify TRUE for this parameter to stretch preview frames to the size of the capture window or FALSE to display them at their natural size.
どうもこれが意味するところはpreviewフレームのサイズだけが対象ではないかと理解しました。
VBで調べると「GetVideoSize メソッドは、ネイティブ ビデオのサイズを取得する。」
https://msdn.microsoft.com/ja-jp/library/cc354678.aspx というのがあったので試してみると640x480と出ました。
しばらく勉強してから再度質問させていただきます。 ありがとうございました。
ハードウェア(カメラ)の設定って、あるんでしょうか?
解像度の設定が低かったりして。
ここらへんを見れば分かるかもしれません。。。
https://msdn.microsoft.com/en-us/library/windows/desktop/dd757677(v=vs.85).aspx
ツイート | ![]() |