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窗口中的主要内容,如果未能解决你的问题,请参考以下文章
让 tkinter 在带有 asdf 的 macos 上使用 python 3.x
python: tkinter 显示来自网络摄像头的视频并进行 QR 扫描