使用AForge访问USB摄像头控件

Sha*_*lan 8 c# aforge directshow.net

我有一个项目,我需要使用USB相机处理在非常近的范围(5毫米以下)获得的图像.由于可用空间很短,我不能使用辅助镜头.

我知道我可以在位图级别进行一些后期处理,但我希望能够在相机级别访问自动对焦或白平衡等属性.

我正在用AForge开发C#进行图像采集和后期处理,但在图像采集发生之前我似乎无法找到控制相机的方法.

你能帮助我吗?

Sha*_*lan 9

经过一些更深入的研究后,我自己找到了答案.

如果其他人正在搜索此项,您可以尝试以下方法;

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
Run Code Online (Sandbox Code Playgroud)

通过使用IAMVideoProcAmp,似乎可以在没有表单的情况下控制这些项目


Has*_*man 6

您可以直接访问摄像机设置而无需调用方法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);
Run Code Online (Sandbox Code Playgroud)