python 3.x tkinter,将来自opencv cv2的帧集成到tkinter窗口中

Posted

技术标签:

【中文标题】python 3.x tkinter,将来自opencv cv2的帧集成到tkinter窗口中【英文标题】:python 3.x tkinter, integrating frames from opencv cv2 into tkinter window 【发布时间】:2016-09-18 09:41:42 【问题描述】:

我有一个问题,如何将 tkinter 与 cv2 集成,我的意思是我可以创建一个充满对象的 tkinter 窗口,我可以在一个框架中打开我的笔记本电脑摄像头,但我想从 openCV cv2 集成这个“框架”进入 tkinter 窗口,在其他对象旁边,我该怎么做?

我正在使用,Python 3.4、OpenCV、Numpy、Scipy、Windows 8

这是我的代码

import time, serial, sys, os, cv2
import tkinter as tk
from tkinter import *
from cv2 import *
from scipy import *
from numpy import array
from tkinter import ttk
try:
 import Tkinter
 import ttk
except ImportError:
 import tkinter as Tkinter
 import tkinter.ttk as ttk

mGui = Tk()
mGui.geometry('120x67+0+0') 
mGui.configure(background="Sky Blue")
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
cv2.imshow("Camera's View", frame)
mGui.mainloop()

谢谢

【问题讨论】:

您查看过其他相关帖子吗? ***.com/questions/32342935/using-opencv-with-tkinter 或 ***.com/questions/28670461/… ? 【参考方案1】:

我现在明白了,如果你也拉我起来

我不得不

    创建框架 在框架内创建标签 获取相机视图并将其转换为图像 读取图像并赋值给变量 为标签(图片)创建一个新属性 将红色图像分配给属性 配置标签以显示图像

现在这么清楚,这么明显

这里是代码(包括以前的库)

from PIL import Image, ImageTk (add library)
mGui = Tk()
mGui.geometry('600x600+0+0')
mGui.configure(background="Sky Blue")

fframe = Frame(mGui, width=500, height=500)
fframe.place(x=50, y=50)

cap = cv2.VideoCapture(0)
ret, frame = cap.read()

v1 = Label(fframe, text="fchgvjvjhb")
v1.place(x=0, y=10)
v2 = Label(fframe, text="ajajajaja")
v2.place(x=300, y=10)

def dddd():
 ret, frame = cap.read()

 img = Image.fromarray(frame)
 nimg = ImageTk.PhotoImage(image=img)

 v1.n_img = nimg
 v1.configure(image=nimg)


 gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
 gimg = Image.fromarray(gray)
 gnimg = ImageTk.PhotoImage(image=gimg)

 v2.ng_img = gnimg
 v2.configure(image=gnimg)
 mGui.after(10, dddd)    

dddd()
mGui.mainloop()

【讨论】:

以上是关于python 3.x tkinter,将来自opencv cv2的帧集成到tkinter窗口中的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.x - Python Tkinter

让 tkinter 在带有 asdf 的 macos 上使用 python 3.x

python: tkinter 显示来自网络摄像头的视频并进行 QR 扫描

如何在 python 3.x tkinter 中保存文本框(字符串和整数)

python GUI(Tkinter)

在Python中触发来自不同类的Tkinter事件