深圳网站建设做一个公司网站要多少钱十大免费自媒体素材网站
深圳网站建设做一个公司网站要多少钱,十大免费自媒体素材网站,怎么把现有网站开发php,地情网站建设大部分时候#xff0c;我们都是通过 opencv 来读取 usb 摄像头的帧图像的。几乎所有的 usb 摄像头是可以进行自动对焦的#xff0c;除非它是定焦的。当我们想要通过代码来控制摄像头的焦距的时候#xff0c;会发现#xff0c;有很多时候 opencv 的 API 没有办法进行有效的控…大部分时候我们都是通过 opencv 来读取 usb 摄像头的帧图像的。几乎所有的 usb 摄像头是可以进行自动对焦的除非它是定焦的。当我们想要通过代码来控制摄像头的焦距的时候会发现有很多时候 opencv 的 API 没有办法进行有效的控制。
比较基础的 opencv 控制焦距的代码如下
import cv2def do_nothing(x)passcap cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_AUTOFOCUS, 0)
cv2.namedWindow(img, cv2.WINDOW_NORMAL)
cv2.createTrackbar(focus, img, 0, 127, do_nothing) while True:focus_val cv2.getTrackbarPos(focus, img)cap.set(cv2.CAP_PROP_FOCUS, focus_val)_, img cap.read()cv2.imshow(img, img)key cv2.waitKey(1)if key 27:breakcv2.destoryAllWindow()
cap.release()上面的代码正常来说可以通过进度条的数值来对摄像头的焦距进行控制但是实际上在我的摄像头上并不行。不管怎么拖动进度条焦距都是没有任何变化而且设置的自动对焦为 False 也不起作用相机还是会进行自动对焦。
但是因为我使用 window 相机的高级设置测试过确实是可以手动调整焦距的所以我觉得这波 opencv 应该负全责。
但是 opencv 用不了问题还是没解决我想着相机厂家应该会有相应的 SDK 来进行控制于是满心欢喜的发了一条微信过去可是消息却石沉大海了无音讯。
最后在网上找到了一个 uvc 的 python 封装解决了我的问题。
项目地址pyuvc
通过几句简单的代码就实现了 opencv 实现不了的对焦控制功能具体的安装步骤官方 github 仓库里面有这里就不展开了
import cv2
import uvcdef do_nothing(x)passdev uvc.device_list()[0]
cap uvc.Capture(dev[uid])
cap.controls[2].value 0 # close auto focuscv2.namedWindow(img, cv2.WINDOW_NORMAL)
cv2.createTrackbar(focus, img, 0, 127, do_nothing) while True:focus_val cv2.getTrackbarPos(focus, img)cap.controls[3].value focus_valimg cap.get_frame_robust().bgrcv2.imshow(img, img)key cv2.waitKey(1)if key 27:breakcv2.destoryAllWindow()
cap.close()上面这段代码就可以轻松通过 uvc 实现焦距的控制。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88480.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!