hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
小ワザ/USBカメラ - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

小ワザ

USBカメラを使おう

最近普及しているネットブックのほとんどはUSBカメラ(WEBカメラ)を標準搭載しているようです。
HSPでは標準で搭載されているHSPCV.DLLを使用することで、このWEBカメラの画像を取得することが出来るようになります。
ということで、とりあえず使ってみましょう。

早速、注意点

HSPCVはまだ未成熟な部分があるDLLです。
環境によっては正常に動作しないことがあるので注意してください。
掲載されたスクリプトを実行して、もし何か問題が発生しても自己責任でお願いします。

もくじ

  • このページ … HSPCVの基本的な使い方から、USBカメラの基本的な使い方まで。
  • 画像イメージ操作 … USBカメラの画像に対して簡単な処理を行います。
  • 画像ファイル化 … USBカメラの画像を、画像ファイルに出力します。簡易写真機のようになります。
  • 絵を重ねる … USBカメラの画像の上に、標準命令などで画像を描画する。

HSPCVの基本

基本的な考え方

HSPCVでは、CVバッファという領域を使用します。
CVバッファ … buffer命令で作成する仮想領域のように実際には表示されないウィンドウ。screen/buffer命令のウィンドウIDとはまったく別の「CVバッファID」で管理される。HSPCVだけが利用できる。

CVバッファ内で描画・画像処理などした後に、CVバッファからHSPのウィンドウバッファ(screen/buffer)に画像を転送。この画像をようやくユーザーが目視出来るようになります。

「CVバッファ」
・画像の描画や読み込み
・画像処理命令の実行
   ↓(転送)
「HSPのウィンドウバッファ(screen/buffer)」
・HSP標準命令での追加描画など
・redraw 1で描画など
   ↓
ユーザーの目に見える

CVバッファ

CVバッファをまとめると次のような感じです。

  • buffer命令で作成する仮想領域のように実際には表示されないウィンドウ。
  • screen/buffer命令のウィンドウIDとはまったく別の「CVバッファID」で管理される。
    • この番号はプラグインが管理している。
    • 0から63までの番号(ID)で管理している。つまり上限64個まで。
  • HSPCVだけが利用できる。
  • HSPのウィンドウバッファ(screen/buffer)に転送することによってユーザーに見えるようにしたり他の画像処理を加えたりできるようになる。

CVバッファを確保するためには、CVバッファの初期化が必要です。
cvbuffer命令かcvload命令でCVバッファの初期化が可能です。
しかしここではUSBカメラの画像を取得するだけならcvbuffer命令だけで十分ですね。

USBカメラを使う

基本的な流れ

通常、次のような手順でUSBカメラの画像を取得・表示することが出来ます。

  1. CVバッファを初期化。cvbuffer
  2. カメラキャプチャの開始を行う。cvcapture
  3. メインループに突入。
  4. キャプチャ画像をCVバッファに描画。cvgetcapture
  5. CVバッファの内容をHSPのウィンドウバッファに転送。cvgetimg
  6. 終了時には必ずカメラキャプチャの終了を行う。cvendcapture

cvgetcapture命令を使用したら、必ずcvendcapture命令でキャプチャを終了させる必要があります。

サンプル

と言うことで、サンプルを見てみましょう。

+  サンプルスクリプト

USBカメラが使える環境で実行すると、ウィンドウ内にカメラの映像が表示されるはずです。
環境によっては上下反転や左右反転などしているかもしれませんが、ここではとりあえず気にしないでください。

コメント

  • USBカメラが無い環境での処理分けのやり方がわからない…。まあいいか。 -- GENKI? 2010-04-24 (土) 19:06:48

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2010-04-24 (土) 23:02:17 (1323d)