cv2.VideoCapture在raspberry pi和ueye摄像机上不起作用

2024-09-27 23:17:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用ueye摄像头连接到运行raspbian的Raspberry pi 4,我正在尝试使用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!") 

所有索引都失败。

我读了下面的问答 但是我找不到他们正在谈论的这个/dev/ueye目录

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

有没有办法从ueye摄像机检索视频流?最好保持视频捕获功能

这是我的密码:

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", width=45, command=finalizar)
btnFinalizar.grid(column=1, row=0, padx=5, pady=5)
lblVideo = Label(root)
lblVideo.grid(column=0, row=1, columnspan=2)
root.mainloop()

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


Tags: fromtestimageimportifrootcv2frame

热门问题