Sha*_*lan 8 c# aforge directshow.net
我有一个项目,我需要使用USB相机处理在非常近的范围(5毫米以下)获得的图像.由于可用空间很短,我不能使用辅助镜头.
我知道我可以在位图级别进行一些后期处理,但我希望能够在相机级别访问自动对焦或白平衡等属性.
我正在用AForge开发C#进行图像采集和后期处理,但在图像采集发生之前我似乎无法找到控制相机的方法.
你能帮助我吗?
经过一些更深入的研究后,我自己找到了答案.
如果其他人正在搜索此项,您可以尝试以下方法;
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,似乎可以在没有表单的情况下控制这些项目
您可以直接访问摄像机设置而无需调用方法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)