如何使用EmguCV设置摄像头属性



我按照EmguCV教程制作了一个c#应用程序,用于捕获网络摄像机。预览工作得很好,但我不能改变相机属性,如亮度,曝光等,我需要在我的应用程序中实现这一点。在文档中说我应该用CAP_PROP枚举来做,但它不起作用,这是我改变亮度的代码:

_capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_BRIGHTNESS, newBrightnessValue);

我在EmguCV论坛上发现了一些回应,他们说这不应该用EmguCV完成,但我已经用EmguCV完成了我的大部分项目,我不想因为这个而用其他库重新开始:/

是否有其他方法可以做到这一点,但不像DirectShow那样太复杂?也许一些可以设置这些属性的库,而不需要改变我使用Emgu CV所做的其余代码?

我遇到过同样的问题,发现这是工作:

CvInvoke.cvSetCaptureProperty(_capture.Ptr, CAP_PROP.CV_CAP_PROP_BRIGHTNESS, newBrightnessValue);

您可以在捕获图像后直接操作其亮度,对比度,伽马值。

所以有些技巧是这样的。

Image<Bgr, byte> myImage;// you can store a static image from disk or 
                         //load one from web cam frame in it
myImage= myImage.Mul(brightValue);// multiply the image with decimal number 
                                  //to increase the brightness
myImage._EqualizeHist(); //to improve the contrast read documentation,
                         //as you can play around the threshold values too.
myImage._GammaCorrect(1.8d);// give a decimal value to adjust the gamma value

你可以参考这篇文章,因为它可能会有所帮助。

最新更新