尝试使用OpenCV的VideoCapture功能时遇到了一些问题。
在VideoCapture.read()之后,出现“ VIDIOC_STREAMON:无效的参数”错误。
我正在使用已安装相机模块的Raspberry Pi 3(这很好,因为我可以运行我的应用程序以检测Aruco标记)
我正在尝试改进上述应用程序,该应用程序当前可捕获图像,检测图像上的标记并使用imshow显示它们。我希望能够在实时视频捕获中检测到标记,就像在此视频上一样:https://www.youtube.com/watch?v=IsXWrcB_Hvs
这是我要运行的代码:
def continuuosDetection(self):
cap = cv2.VideoCapture(-1)
if not cap.isOpened():
print("The camera didn\'t open correctly")
cap.open(-1)
print(cap.isOpened())
ret, frame = cap.read()
cap.release()
if not cap.isOpened():
print("Camera shut properly")
我正在使用Python 3.5,并且如上所述,尽管我正在使用PiCamera.capture()方法拍摄图像,但相机模块在使用其他功能时也可以正常工作。对于VideoCapture(),我同时使用-1和0作为摄像机ID。
print(cap.isOpened())
这每次都返回“ True”。看来相机打开正确了吗?
print(ret)
print(frame)
这些返回“ False”和“ None”,因此我无法使用cv2.imshow显示捕获。
我用过:
sudo mobprobe bcm2835-v4l2
正如我在一个论坛上发现的那样,但这不能解决我的问题。
我们将不胜感激。
我仍在尝试对这个问题进行分类,因此,如果找到答案,我将在此处提供。尽管到目前为止,我已经在过去几个小时内一直在浏览google,以寻求解决方案,但我仍然在树林里。
此致