cv2.VideoCapture 不适用于 raspberry pi 和 ueye 相机

问题描述

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

cap=cv2.VideoCapture(0,cv2.CAP_DSHOW)

cv2.CAP_V4L2

cv2.CAP_ANY. 

它没有检测到摄像头。

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

import cv2

cams_test=100
for i in range (-1,cams_test):
    cap=cv2.VideoCapture(i,cv2.CAP_DSHOW)
    test,frame=cap.read()
    print("i : "+str(i)+" // result: " +str(test))
    if test:
        print("SUCCESSFULL!") 

所有索引都失败了。

我阅读了以下问题 How can I use OpenCV to capture video stream of ueye cameras? 但我找不到他们正在谈论的这个 /dev/ueye 目录。

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

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

这是我的代码

from tkinter import *
from PIL import Image
from PIL import ImageTk
import cv2
import imutils

def iniciar():
    global cap
    cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
    visualizar()

def visualizar():
    global cap
    if cap is not None:
        ret,frame = cap.read()
        if ret == True:
            frame = imutils.resize(frame,width=640)
            frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
            im = Image.fromarray(frame)
            img = ImageTk.PhotoImage(image=im)
            lblVideo.configure(image=img)
            lblVideo.image = img
            lblVideo.after(10,visualizar)
        else:
            lblVideo.image = ""
            cap.release()

def finalizar():
    global cap
    cap.release()

cap = None
root = Tk()
btnIniciar = Button(root,text="Iniciar",width=45,command=iniciar)
btnIniciar.grid(column=0,row=0,padx=5,pady=5)
btnFinalizar = Button(root,text="Finalizar",command=finalizar)
btnFinalizar.grid(column=1,pady=5)
lblVideo = Label(root)
lblVideo.grid(column=0,row=1,columnspan=2)
root.mainloop()

感谢阅读我的问题的人,我希望答案对其他人有帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...