2009-06-02 8 views
1

私はこのガーデン色のUSBビデオカメラを持っています.2つのミニアプリがあります.1つはカメラに表示されているものと、 .aviファイル。win32 Cプログラムでビデオカメラを読むにはどうすればいいですか

自分のCプログラムでカメラの画像を取得したいのですが、APIは何ですか?私は、(1)可能であり、(2)いくつかの呼び出しを行い、ピクセル情報の2D配列を埋め込むことが望ましいとしています。は、画像処理アルゴリズムを使用して、そのために私はライブデータの周りに自分のコードを載せたいと思っています。

EDIT -

は、Linuxへの健全な露出を持っていたので、私はあなたが、)(デバイスを開くように設定するのioctl()を使用し、)(データを読み取ることができるか(理想的/理論的には)把握することができます。 WindowsがAPIをどのように提示するのかは事実ではないと私は確信しています。 WindowsがビデオデバイスAPIにどのような関数名を使用しているのか、それがある場合でも、少なくとも私が自由に使えるwin32 APIの検索機能では、検索が難しくなります。

答えて

1

DirectShow APIが必要なのは、カメラの動作方法です。メーカーが独自のコードパスを作成した場合は、APIが必要になります。

0

APIを使用する方法です。

カメラに付属品が必要かどうかは、製造元のアプリケーションがインストールされていないPCで認識されているかどうかを確認するのに適しています。ウィンドウにドライバが組み込まれている場合は、Windows APIを使用してイメージをキャプチャできるはずです。

また、AVIファイルに使用されている圧縮コーデックが分かっている場合は、そのファイルを解凍できます。

ネイティブ(YUV、RGB15など)の形式でビデオをキャプチャできれば理想的ですが、圧縮と操作の両方で作業できます。

1

あなたの最初のステップは、Windowsがお使いのデバイスをサポートしているかどうかを確認することです。

その場合は、あなたが撮影のための3つの可能な、WindowsのAPIを持っている:

  • DirectShow
  • VFWを。 DirectShowに置き換えられました。
  • MediaFoundation DirectShowを置き換えるための最新のAPIです。 AFAIKはまだ完全に実装されておらず、Vistaでのみ利用可能です。

3つのDirectShowが最適です。ただし、DirectShowの学習と使用は簡単な作業ではありません。優れた例はhereです。

もう1つの可能性はOpenCVです。 OpenCVは画像処理ライブラリで、画像の処理にも使用できます。 OpenCVには、より簡単な抽象化を提供するイメージキャプチャAPIがあり、Windows APIよりも使いやすくなっています。

関連する問題