9

USBカメラを使用して、非常に近い範囲(5mm未満)で取得した画像を処理する必要があるプロジェクトがあります。使用できるスペースが非常に少ないため、補助レンズを使用できません。

ビットマップ レベルでいくつかの後処理を実行できることはわかっていますが、オート フォーカスやカメラ レベルでのホワイト バランスなどのプロパティにアクセスしたいと考えています。

画像取得と後処理のために AForge を使用して C# で開発していますが、画像取得が行われる前にカメラを制御する方法を見つけることができないようです。

手伝って頂けますか?

4

3 に答える 3

11

より徹底的な調査の後、私は自分で答えを見つけました。

他の誰かがこれを探している場合は、次のことを試すことができます。

VideoCaptureDevice Cam1;
FilterInfoCollection VideoCaptureDevices;

VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
Cam1 = new VideoCaptureDevice(VideoCaptureDevices[0].MonikerString);
Cam1.DisplayPropertyPage(IntPtr.Zero); //This will display a form with camera controls

IAMVideoProcAmp を使えば、これらの項目をフォームなしで制御することも可能のようです。

于 2012-02-16T09:10:59.980 に答える
7

メソッド DisplayPropertyPage() を呼び出さずに、カメラ設定に直接アクセスできます。

FilterInfoCollection videoDevices = 
    new FilterInfoCollection(FilterCategory.VideoInputDevice);

VideoCaptureDevice videoDevice = 
    new VideoCaptureDevice(videoDevices[camDevice].MonikerString);

videoDevice.SetCameraProperty(
    CameraControlProperty.Zoom,
    zoomValue,
    CameraControlFlags.Manual);

videoDevice.SetCameraProperty(
    CameraControlProperty.Focus,
    focusValue,
    CameraControlFlags.Manual);

videoDevice.SetCameraProperty(
    CameraControlProperty.Exposure,
    exposureValue,
    CameraControlFlags.Manual);
于 2014-09-25T17:31:57.650 に答える