我正在尝试用openCV编写一个小测试应用程序,使用Python从网络摄像头捕获帧。 我的系统非常小,因此我在Fluxbox上安装了一个最小的Ubuntu。 我无法使用openCV进行任何视频捕获。 当我在更完整的Ubuntu安装(例如桌面,Xubuntu甚至Lubuntu)上尝试相同的代码时,我能够轻松捕获视频。
我的结论是我的最小Ubuntu安装缺少了一些东西,我试图找出它是什么。
至于细节:我确实看到我的相机列出了我运行'lsusb' 另外,当我执行:
cap = cv.CaptureFromCAM(0)
我确实获得了一个有效的捕获对象。但是当我尝试:
frame = cv.QueryFrame(cap)
我得到一个空对象。
我使用apt-get安装python-opencv而不是自己构建它。它似乎在Xubuntu,Lubuntu等上运行得很好。
提前感谢您的帮助
答案 0 :(得分:0)
之前我有同样的问题,你必须在你的计算机上安装FFMPEG库才能使用这个功能 在你必须再次进行cmake并重新编译opencv库
之后答案 1 :(得分:0)
如果您使用的是python,则可以安装
pip install opencv-python
然后您可以使用
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, img = cap.read()
cv2.imshow('video', img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
它适用于任何最小设置。谢谢。