cv2.VideoCapture 不适用于树莓派和 ueye 相机

Joa*_*set 5 python opencv raspberry-pi ueye

我正在使用连接到运行 raspbian 的 Raspberry pi 4 的 ueye 相机,并且我正在尝试使用 Python 中的 OpenCV 获取并显示来自相机的图像。当我使用时出现问题:

\n
cap=cv2.VideoCapture(0,cv2.CAP_DSHOW)\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
cv2.CAP_V4L2\n\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
cv2.CAP_ANY. \n\n
Run Code Online (Sandbox Code Playgroud)\n

它没有检测到相机。

\n

也许问题是设备索引“0”,所以我运行此代码来尝试其他索引:

\n
import cv2\n\ncams_test=100\nfor i in range (-1,cams_test):\n    cap=cv2.VideoCapture(i,cv2.CAP_DSHOW)\n    test, frame=cap.read()\n    print("i : "+str(i)+" // result: " +str(test))\n    if test:\n        print("SUCCESSFULL!") \n
Run Code Online (Sandbox Code Playgroud)\n

所有索引均失败。

\n

我读了下面的q\xc3\xbcestion如何使用OpenCV捕获ueye相机的视频流?\n但我无法找到他们正在谈论的这个 /dev/ueye 目录。

\n

我可以将视频捕获中的索引号替换为我的 ueye 摄像机的安装路径吗?(我不知道这条路)

\n

有没有办法从 ueye 摄像机检索视频流?最好保留VideoCapture功能。

\n

这是我的代码:

\n
from tkinter import *\nfrom PIL import Image\nfrom PIL import ImageTk\nimport cv2\nimport imutils\n\ndef iniciar():\n    global cap\n    cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)\n    visualizar()\n\ndef visualizar():\n    global cap\n    if cap is not None:\n        ret, frame = cap.read()\n        if ret == True:\n            frame = imutils.resize(frame, width=640)\n            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n            im = Image.fromarray(frame)\n            img = ImageTk.PhotoImage(image=im)\n            lblVideo.configure(image=img)\n            lblVideo.image = img\n            lblVideo.after(10, visualizar)\n        else:\n            lblVideo.image = ""\n            cap.release()\n\ndef finalizar():\n    global cap\n    cap.release()\n\ncap = None\nroot = Tk()\nbtnIniciar = Button(root, text="Iniciar", width=45, command=iniciar)\nbtnIniciar.grid(column=0, row=0, padx=5, pady=5)\nbtnFinalizar = Button(root, text="Finalizar", width=45, command=finalizar)\nbtnFinalizar.grid(column=1, row=0, padx=5, pady=5)\nlblVideo = Label(root)\nlblVideo.grid(column=0, row=1, columnspan=2)\nroot.mainloop()\n
Run Code Online (Sandbox Code Playgroud)\n

感谢阅读我的 q\xc3\xbccession 的人,我希望答案对其他人有帮助

\n