0

独自のWebカメラタイムラッピングアプリケーションを作成していますが、一部のWebカメラで問題が発生しています。特に1つは、5MPの写真を撮ることができると宣伝していますが、私が取得しているフィードであるネイティブの320x240(または何か恐ろしいもの)を実行します。

私はウェブ全体にうまくコピーアンドペーストされているように見えるコードを使用しています。ウェブカメラへのアクセスに使用している化身はここにあり ますhttp://www.planet-source-code.com/vb/scripts/ ShowCode.asp?txtCodeId = 1339&lngWId = 10 で、avicap32を使用してWebカメラにアクセスします。呼び出しは次のようになります。

mCapHwnd = capCreateCaptureWindowA("WebCap", 0, 0, 0, m_Width, m_Height, this.Handle.ToInt32(), 0);
SendMessage(mCapHwnd, WM_CAP_CONNECT, 0, 0);
SendMessage(mCapHwnd, WM_CAP_SET_PREVIEW, 0, 0);

私は他の2つのWebカメラ(1つはラップトップに組み込まれ、もう1つは私が蹴り回していた)でテストしましたが、どちらも立派な解像度を得ているようです。

ばかばかしいほど高解像度の画像を撮ろうとするようにWebcam_Captureコードを変更しました

//private int m_Width = 320;
//private int m_Height = 240;
private int m_Width = 1600;
private int m_Height = 1200;
//private int m_Width = 3200;
//private int m_Height = 2400;

上記のように、いくつかの異なる解像度を使用します。

私の腸は、ウェブカメラがデフォルトでいくつかのネイティブ値になっているように見えるので、ウェブカメラに別の解像度を使用させるために何かをする必要があると言っています。

考え?

私が使用しているコードをもっと投稿できれば幸いですが、これが重要なことのようです。WM_SET_PREVIEWは、説明が必要な場合があります。これはAPI定数です。

public const int WM_CAP_CONNECT = 1034;
public const int WM_CAP_DISCONNECT = 1035;
public const int WM_CAP_GET_FRAME = 1084;
public const int WM_CAP_COPY = 1054;
public const int WM_CAP_START = WM_USER;
public const int WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41;
public const int WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42;
public const int WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43;
public const int WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44;
public const int WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45;
public const int WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46;
public const int WM_CAP_SET_PREVIEW = WM_CAP_START + 50;

どんなアイデアでも大歓迎です!奪う

4

1 に答える 1

0

カメラをセットアップするためのコードは示されていません。そのため、デフォルトの低解像度が適用される場合があります。アイデア:

  1. Video for Windows を使用しない場合 - API は廃止され、制限があり、プログラム的に柔軟ではありません。とにかく、WM_CAP_SET_VIDEOFORMATメッセージはウェブカメラを設定し、解像度を変更します。代わりに DirectShow または Media Foundation の使用を検討してください。

  2. Windows SDK は、インタラクティブにキャプチャ パイプラインを構築し、特に利用可能な解像度を検査できる GraphEdit ツールを提供します。

  3. カメラの仕様を確認してください: 5 MP の静止画は、この解像度がストリーミング ビデオに使用できることを意味するものではありません。ビデオ解像度はその 1/4 かもしれませんが、320x240 よりは確実に優れているはずです。

于 2013-07-29T08:18:51.037 に答える