.NET Framework 2.0 でキャプチャ

.NET Framework 2.0 対応言語 (C#2.0, VB2005など) を利用して USB接続の Webカメラなどから画像を取得するためのサンプルです。画像認識などを行うことを想定しています。
サンプルでは以下のことを行っています。
- 取り扱いが容易なライブラリの作成
数行の記述で Web カメラやキャプチャカードからの画像を取得/加工できるようなライブラリを作成しています。
内部的には DirectX の GetCurrentBuffer を利用して同期処理を行っているため、スレッドを意識しないプログラミングが可能です。もちろん unsafe ではありませんのでメモリリークの心配もありません。
- 高速な画像処理
標準的な方法 ( GetPixel() で 1ピクセルずつよみこむ ) を利用すると、とてつもなく遅くなります。このサンプルでは Marshal.Copy, Bitmap.LockBits, Bitmap.UnlockBits を利用して、Bitmap を byte配列 にコピーしたり、その逆を行うことで高速な画像処理を行っています。この処理もライブラリに組み込まれています。
- [2006/06/12] ver. 0.7 (単純な静止画キャプチャ処理)
- [2008/03/02] ver. 0.8 (静止画キャプチャを連続的に行い、リアルタイム動画像処理)
* クリックで動画を表示します

- [2008/03/04] 射影変換のテスト

- USBカメラをC#で使おう
- 第 3 章 画像処理入門 1 ~ アルゴリズム入門 ~ (Microsoft)
- Bitmap.UnlockBits メソッド (MSDNライブラリ, 画像処理サンプルコードあり)
コメント
このプログラムをベースに3台を同時表示しようと考えているのですが、どのように手を加えればいいのでしょうか?
| k84993 | EMAIL | URL | 08/09/15 00:20 | 4HXqTrd2 |
ソースコードを若干整理して、コメント欄の少し上に置きましたので、よろしければご利用ください。
| ささお | EMAIL | URL | 08/03/02 16:27 | W/A3brN2 |
ささお様
情報ありがとうございます。対応早いですねー。
早速試してみます。
コンピューターの速度は相当負けていますが、、、
情報ありがとうございます。対応早いですねー。
早速試してみます。
コンピューターの速度は相当負けていますが、、、
| yasuda | EMAIL | URL | 08/02/29 18:35 | CJQJsOpA |
Core2 Quad Q6600 なマシンでも試したところ、普通に動画に見えました(30fps程度)。ただ、USBカメラによっては、蛍光灯の明かり程度の場合にコマ数を落とすことがありますので、そちらのせいでコマ落ちしているかのように見えるかもしれません。
| ささお | EMAIL | URL | 08/02/28 23:20 | W/A3brN2 |
上記の処理(640x480ピクセルに対し、ある明るさ以上のピクセルを白塗り)を Pentium M 1.1GHz のノートPCで行った場合、毎秒10フレーム程度でした。ご参考までに実行形式のファイルとソースコードを作成しましたので、動作をご確認ください。http://tmp.junkbox.info/files/20080228224230.zip
| ささお | EMAIL | URL | 08/02/28 22:44 | W/A3brN2 |
はじめまして
C#のアプリにUSBカメラの画像表示を考えてるのですが、実際読み込み、表示速度はどれくらいですか?
PC環境や画素数によると思いますが、参考までに
教えて下さい。
毎秒数フレーム読み込めるのであれば、動画っぽく
表示もできるかなと。
C#のアプリにUSBカメラの画像表示を考えてるのですが、実際読み込み、表示速度はどれくらいですか?
PC環境や画素数によると思いますが、参考までに
教えて下さい。
毎秒数フレーム読み込めるのであれば、動画っぽく
表示もできるかなと。
| yasuda | EMAIL | URL | 08/02/28 13:03 | CJQJsOpA |
コメントする
この記事のトラックバックURL
http://tmp.junkbox.info/tb.php/24
トラックバック
TOP PAGE △