我需要来自网络摄像头的视频。在带有 python-3.6 和 OpenCV-3 的 Anaconda 上,它工作得很好。然后我在 Idle 中使用 python-3.6 和 OpenCV-4.1.0 尝试了相同的代码,但它在 anaconda 中不起作用。我有两个黑色的上下边缘,我只能看到图像的中间。我尝试修改一些 OpenCV 设置,但情况变得更糟,现在只有在强光照射下,我在图像上几乎看不到任何东西。两条边并没有消失。
import cv2
capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_SETTINGS, 0)
while(True):
ret, frame = capture.read()
cv2.imshow('video', frame)
if cv2.waitKey(1) == 27:
break
capture.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
该行capture.set(cv2.CAP_PROP_SETTINGS, 0)会打开一个小的设置对话框,但还有许多其他对话框,如下所示:
我尝试安装华硕的一些相机驱动程序,但找不到适合我的型号的驱动程序:FX504GE。是否可以通过此设置或其他方式的组合来恢复我的网络摄像头?我真的很需要它...
简单的方法是在启动相机时使用 v4l2-ctrl 读取所有参数。记录初始值。在你完成opencv之后。使用 v4l2-ctrl 进行设置。
例如。尺寸
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=YUYV
Run Code Online (Sandbox Code Playgroud)
还有其他像自动缩放自动曝光和很多东西读取所有并设置所有