我有一個項目,我需要使用USB攝像頭處理非常近距離(低於5毫米)的圖像。由於可用空間很短,我無法使用輔助鏡頭。使用AForge訪問USB攝像頭控件
我知道我可以在位圖級別進行一些後期處理,但是我想獲得相機級別的自動對焦或白平衡等屬性。
我正在用C#開發AForge進行圖像採集和後期處理,但我似乎無法找到在圖像採集發生之前控制相機的方法。
你能幫我嗎?
我有一個項目,我需要使用USB攝像頭處理非常近距離(低於5毫米)的圖像。由於可用空間很短,我無法使用輔助鏡頭。使用AForge訪問USB攝像頭控件
我知道我可以在位圖級別進行一些後期處理,但是我想獲得相機級別的自動對焦或白平衡等屬性。
我正在用C#開發AForge進行圖像採集和後期處理,但我似乎無法找到在圖像採集發生之前控制相機的方法。
你能幫我嗎?
經過一些更徹底的研究後,我發現了answer。
如果其他人正在尋找這個,你可以嘗試以下;
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
控制這些項目,而不形式您可以訪問相機直接設置,而無需調用該方法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);
要訪問其他攝像頭屬性像亮度,對比見 IAMVideoProcAmp implementation
videoDevice.SetVideoProperty(
VideoProcAmpProperty.Brightness,
brightnessValue,
VideoProcAmpFlags.Manual);
videoDevice.SetVideoProperty(
VideoProcAmpProperty.Contrast,
contrastValue,
VideoProcAmpFlags.Manual);
videoDevice.SetVideoProperty(
VideoProcAmpProperty.Saturation,
saturationValue,
VideoProcAmpFlags.Manual);
videoDevice.SetVideoProperty(
VideoProcAmpProperty.Sharpness,
sharpnessValue,
VideoProcAmpFlags.Manual);
videoDevice.SetVideoProperty(
VideoProcAmpProperty.WhiteBalance,
whiteBalanceValue,
VideoProcAmpFlags.Manual);
videoDevice.SetVideoProperty(
VideoProcAmpProperty.BacklightCompensation,
backlightCompensationValue,
VideoProcAmpFlags.Manual);
謝謝你的回覆。您已將有價值的信息添加到我的最初想法中:可以使用IAMVideoProcAmp設置這些信息。距離我的第一篇文章還有幾年,但這些信息可能仍然與某些用戶有關。 – Shadlan 2014-10-06 16:13:33
@Darshana你做的編輯太小了。這不應該被批准,所以我把它回滾了。請在編輯中加入更多努力。 [閱讀此](http://stackoverflow.com/help/editing)如果你不確定如何正確編輯帖子。 – Gray 2013-11-14 13:34:23