在视频输入库或 OpenCV 中禁用自动对焦

发布于 2025-01-03 04:06:45 字数 137 浏览 0 评论 0原文

我正在使用视频输入库从网络摄像头获取帧。我想用 C 代码设置该相机的焦点。

相机已启用自动对焦。有没有办法禁用自动对焦并设置特定的焦点值

问候, 萨利赫...

I am using Video Input library to get frames from a webcam. I want to set FOCUS of this camera in C code.

Camera has AUTO FOCUS enabled. Isn't there a way to disable autofocus and set a specific focus value.

Regards,
Saleh...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

故乡的云 2025-01-10 04:06:45

如果您使用 OpenCV 3.1.0-dev 版本和 Python 2.7.5,下面的代码片段应该对您有帮助;)

cap = cv2.VideoCapture(1) # my webcam
cap.set(3, 1280) # set the resolution
cap.set(4, 720)
cap.set(cv2.CAP_PROP_AUTOFOCUS, 0) # turn the autofocus off

使用我的 Logitech HD Pro 网络摄像头 C920 可以正常工作。 cv2 内部还有许多其他很酷的控制函数,例如 cv2.CAP_PROP_BRITHNESS 或 cv2.CAP_PROP_CONTRAST 。
查看自动完成功能向您显示的内容;)

If you use the OpenCV 3.1.0-dev version and Python 2.7.5, the following code snipped should help you ;)

cap = cv2.VideoCapture(1) # my webcam
cap.set(3, 1280) # set the resolution
cap.set(4, 720)
cap.set(cv2.CAP_PROP_AUTOFOCUS, 0) # turn the autofocus off

With my Logitech HD Pro Webcam C920 is works fine. There are many other cool control functions inside cv2, like cv2.CAP_PROP_BRITHNESS or cv2.CAP_PROP_CONTRAST.
Check out what the auto-complete is showing you ;)

红焚 2025-01-10 04:06:45

您是否尝试过此操作: https://stackoverflow.com/a/1718009/7531 它要求您使用 directshow,但这应该是可能的。

否则,您是否查看了 CameraCapture 的 OpenCV 文档。有关相机参数的部分显示了一般情况下如何控制相机参数,快速浏览一下 videoinput.h 应该会向您显示自动对焦的参数。
这是一个完整的示例 以这种方式设置自动对焦。

IAMCameraControl是控制参数的windows界面。

请注意,根据您使用的网络摄像头和/或特定固件版本,可能根本无法控制对焦/自动对焦。

Have you tried this: https://stackoverflow.com/a/1718009/7531 It requires you use directshow, but this should be possible.

Otherwise, have you looked at the OpenCV documentation for CameraCapture. the section concerning camera parameters shows how --in general- you control camera parameters, a quick look in videoinput.h should show you the parameters for autofocus.
This is a complete example of setting autofocus this way.

IAMCameraControl is the windows interface for controlling parameters.

Note that depending on the webcam you use, and/or the specific firmware version it might not be possible to control focus / autofocus at all.

莫相离 2025-01-10 04:06:45

我已经搜索了这个问题几天,并尝试了 videoinput 库和 directshow。
如果您只想在 opencv 中(手动)设置一次相机参数,我发现最简单的方法是:

VideoCapture cap(0);
cap.set(CV_CAP_PROP_SETTINGS, 1);

它会弹出一个窗口供您设置参数。足以禁用自动对焦。

这种方法的不便之处在于,如果想通过程序控制焦距,则无法做到。

I have searched for this problems for couples of days and tried videoinput library and directshow.
If you just want to set up the camera parameters for once (manually) inside opencv, the easiest way I found is:

VideoCapture cap(0);
cap.set(CV_CAP_PROP_SETTINGS, 1);

it will pop out a window for you to set the parameters. enough to disable autofocus.

The inconvenience of this method is that if you want to control the focal length by program, it cannot do that.

三生池水覆流年 2025-01-10 04:06:45

您正在寻找的功能是特定于相机和驱动程序的。 OpenCV 相机属性控件仅提供非常基本的参数.
没有通用的方法可以通过 OpenCV 进行该调用。

要做到这一点,您可以执行以下操作之一,而不是通过 OpenCV:

The functionality you are looking for is camera and driver specific. The OpenCV camera property controls provide only very rudimentary parameters.
There is no generic way to make that call through OpenCV.

To do it, not through OpenCV, you can do do one of the following:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文