刚接触AForge.NET,求大神指点[align=left],如何去配置我自己的摄像头的亮度等参数。第一次发帖,求助大家了。 VideoCaptureDevice UsbVideo;
private void Form1_Load(object sender, EventArgs e)
{
FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.Vi[/align]deoInputDevice);
if (videoDevices.Count > 0)
{
UsbVideo = new VideoCaptureDevice(videoDevices[1].MonikerString); sourcePlayer.VideoSource = UsbVideo;
UsbVideo.VideoResolution = UsbVideo.VideoCapabilities[0];
sourcePlayer.Start();
}
else
{
}
}
private void Form1_Load(object sender, EventArgs e)
{
FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.Vi[/align]deoInputDevice);
if (videoDevices.Count > 0)
{
UsbVideo = new VideoCaptureDevice(videoDevices[1].MonikerString); sourcePlayer.VideoSource = UsbVideo;
UsbVideo.VideoResolution = UsbVideo.VideoCapabilities[0];
sourcePlayer.Start();
}
else
{
}
}
http://blog.csdn.net/libby1984/article/details/51454516
http://blog.csdn.net/libby1984/article/details/51454516
public bool SetCameraProcAmp(VideoProcAmpProperty property, int value, VideoProcAmpFlags controlFlags)
{
bool ret = true; // check if source was set
if ((deviceMoniker == null) || (string.IsNullOrEmpty(deviceMoniker)))
{
throw new ArgumentException("Video source is not specified.");
} lock (sync)
{
object tempSourceObject = null; // create source device's object
try
{
tempSourceObject = FilterInfo.CreateFilter(deviceMoniker);
}
catch
{
throw new ApplicationException("Failed creating device object for moniker.");
} if (!(tempSourceObject is IAMCameraControl))
{
throw new NotSupportedException("The video source does not support camera control.");
} IAMVideoProcAmp videoProcAmp = (IAMVideoProcAmp)tempSourceObject;
int hr = videoProcAmp.Set(property, value, controlFlags); ret = (hr >= 0); Marshal.ReleaseComObject(tempSourceObject);
} return ret;
}
其中使用的一些类和枚举类型:
/// <summary>
/// From VideoProcAmpProperty
/// </summary>
public enum VideoProcAmpProperty
{
/// <summary>
/// 亮度
/// </summary>
Brightness,
/// <summary>
/// 对比度
/// </summary>
Contrast,
/// <summary>
/// 色相
/// </summary>
Hue,
/// <summary>
/// 饱和度
/// </summary>
Saturation,
/// <summary>
/// 清晰度
/// </summary>
Sharpness,
/// <summary>
/// 伽马
/// </summary>
Gamma,
/// <summary>
/// 启用颜色
/// </summary>
ColorEnable,
/// <summary>
/// 白平衡
/// </summary>
WhiteBalance,
/// <summary>
/// 逆光对比
/// </summary>
BacklightCompensation,
/// <summary>
/// 增益
/// </summary>
Gain
}
/// <summary>
/// From VideoProcAmpFlags
/// </summary>
[Flags]
public enum VideoProcAmpFlags
{
/// <summary>
/// 默认
/// </summary>
None = 0,
/// <summary>
/// 自动
/// </summary>
Auto = 0x0001,
/// <summary>
/// 手动
/// </summary>
Manual = 0x0002
}
[ComImport, System.Security.SuppressUnmanagedCodeSecurity,
Guid("C6E13360-30AC-11d0-A18C-00A0C9118956"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IAMVideoProcAmp
{
[PreserveSig]
int GetRange(
[In] VideoProcAmpProperty Property,
[Out] out int pMin,
[Out] out int pMax,
[Out] out int pSteppingDelta,
[Out] out int pDefault,
[Out] out VideoProcAmpFlags pCapsFlags
); [PreserveSig]
int Set(
[In] VideoProcAmpProperty Property,
[In] int lValue,
[In] VideoProcAmpFlags Flags
); [PreserveSig]
int Get(
[In] VideoProcAmpProperty Property,
[Out] out int lValue,
[Out] out VideoProcAmpFlags Flags
);
}