この記事では、Processing言語で2Webカメラの映像を取得・表示する方法をソースコード付きで解説します。
Webカメラ
Processingでは、パソコンに接続されたカメラをキャプチャーして操作できます。
– | 処理手順 |
---|---|
1 | 画面サイズを設定する。 |
2 | PCに接続されている全てのカメラのリストを取得する。 |
3 | リストの一番最初にあるカメラのキャプチャーする。 |
4 | カメラから画像を取得する。 |
5 | 取得した画像を表示する。 |
6 | 4~5を繰り返す。 |
ソースコード
サンプルプログラムのソースコードです。
import processing.video.*; Capture cam; void setup() { /* 画面サイズ */ size(640, 480); /* 接続されている全てのカメラの名前を取得 */ String[] cams = Capture.list(); /* カメラのキャプチャー */ cam = new Capture(this, cams[0]); cam.start(); } void draw() { /* カメラの画像を取得 */ if (cam.available()) { cam.read(); } /* 画像を表示 */ set(0, 0, cam); }
実行結果
サンプルプログラムの実行結果です。
– | 関連記事 |
---|---|
1 | ■Processing入門 サンプル集 |
コメント
本サイトを参考にprocessingを用いてwebカメラの取得・表示をできました。しかし、アプリケーションにしようとするとどうしてもwebカメラの映像が表示されません。原因が分からないのでアドバイスを頂けたら幸いです。よろしくお願いします。
※gonzo様
コメントありがとうございます。
実行環境(お使いのパソコン環境やProcessingのバージョンなど)や
エラーメッセージ(有れば)等があれば教えていただけますでしょうか。
processingはバージョンは3.3.5でOSはwindows10を利用しています。
pdeファイルでは正常に実行できますがアプリケーションとしてエクスポートしたexeファイルではwindowが表示されてグレーの画面が表示されるだけでカメラの読み込みができない状態です。よろしくお願いします。
追記です。
pdeファイルを作成したパソコンではそれをアプリケーションにしても実行することはできるのですが(processingはインストールされていない)他のPCでは実行上記のように実行できずにグレーな画面が表示されてしまいます。
※gonzo様
コメントありがとうございます。
以下の実行環境でテストしたところ、exeファイルからwebカメラの画面を出力できました。
尚、64bitのPCで32bit版のexeファイルは起動できませんでした。
【環境】
・OS:Windows10 64bit
・exeファイル(Windows 64bit版)
・他のフォルダにexeを移動させる場合は、付属しているlibフォルダも一緒に移動
返信ありがとうございます。
同じ環境ですね、、、関係あるかはわかりませんが、管理人様のテストはprocessingの入っていないパソコンで行いましたか?
映像以外の機能のアプリケーションはほとんど起動するのですが、映像だけはアプリケーションで起動できなくて試行錯誤しています。
※gonzo様
コメントありがとうございます。
Windows版のProcessingはインストール型のソフトではないので、
exeファイルをデスクトップなど適当なフォルダに移動させれば
Processingの有無が関係のない状態となるはずです。
exeファイルをデスクトップや他のPCに移動して使う場合は、付属しているlibフォルダ(dllファイルなどが入ってる)も
一緒に移動させる必要があるのではないでしょうか。
無事起動することができました。ありがとうございます。
USB内にフォルダを置いたまま起動しようとしていた場合、USBからフォルダを移動した際のPATHに日本語が含まれていた場合に起動ができなかったようです。
初歩的なミスにも関わらず、いろいろなアドバイスありがとうございました。
※gonzo様
コメントありがとうございます。
こちらこそ、貴重なご報告をいただきまして嬉しいです。