问题描述
我正在使用连接到运行 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 (将#修改为@)