我正在尝试通过 Python Tkinter 从该显微镜设备获取相机反馈。
我尝试过使用cv2 VideoCapture函数,但没有显示图像。
class RunningStatusFrame(ttk.Frame):
def __init__(self, parent):
ttk.Frame.__init__(self, parent)
self.parent = parent
################## Camera Feed ##################
self.camera_frame = LabelFrame(self, text="Camera Feed",
width=800, height=600)
self.camera_frame.grid(row=0, column=0, columnspan=2)
self.camera_feed = Label(self.camera_frame)
self.camera_feed.pack(fill=BOTH)
self.progress = IntVar(self)
self.cam = cv2.VideoCapture(0)
self.showFrame()
################## Progress Bar #################
self.progress_bar = ttk.Progressbar(self,
orient=HORIZONTAL,
length=150,
maximum=100,
mode='determinate',
variable=self.progress)
self.progress_bar.grid(row=1, column=0, columnspan=2)
################## Laser Status ##################
Label(self, text=" Laser:").grid(row=2, column=0, sticky=E)
self.laser_status = Label(self, text="ON", fg="#f00")
self.laser_status.grid(row=2, column=1, sticky=W)
self.updateInfo()
def updateInfo(self):
'''
Function to update information.
'''
if self.parent.parent.select() == ".!notebook.!autorunframe":
pass
self.after(300, self.updateInfo)
def showFrame(self):
'''
Update camera feed.
'''
frame = self.cam.read()
if frame[0] == False:
return None
frame = imutils.resize(frame[1], width=400)
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
img = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
self.camera_feed.imgtk = imgtk
self.camera_feed.configure(image=imgtk)
self.camera_feed.after(20, self.showFrame)
def setProgress(self, value):
'''
Changes progress bar status.
'''
self.progress.set(value)
这适用于我笔记本电脑上的网络摄像头,但不知何故(可能因为我的显微镜是成像设备)它没有显示任何内容。 有人做过这样的事情吗? 任何建议将不胜感激!
谢谢你
您有一个 “USB3 Vision” 设备。
“USB3 Vision”是一个特定的行业标准,但不是 USB 标准的一部分。
USB3 Vision 不是网络摄像头。 USB 网络摄像头属于统一视频类 (UVC),这是标准中指定的设备类。
Windows 当然不附带 USB3 Vision 的驱动程序。它仅配备 UVC。
您需要与制造商联系并获取视频设备的驱动程序。然后该驱动程序可能仍然不会在 Windows 媒体 API 中作为视频设备出现,但您可能必须直接与驱动程序对话。
你可以尝试带有
cv.CAP_XIMEA
标志的VideoCapture...但我从未尝试过。 XIMEA 生产支持 USB3 Vision 的设备。如果您幸运的话,XIMEA 的 OpenCV videoio
后端也可能 适用于您的设备。
一定要看看 Micka 上面的评论。他给我的印象是他对这些设备非常了解。