ref , frame = cap . read ( ) frame = cv2 . flip ( frame , 1 ) #摄像头翻转 cvimage = cv2 . cvtColor ( frame , cv2 . COLOR_BGR2RGBA ) pilImage = Image . fromarray ( cvimage ) pilImage = pilImage . resize ( ( image_width , image_height ) , Image . ANTIALIAS ) tkImage = ImageTk . PhotoImage ( image = pilImage ) return tkImage top = tk . Tk ( ) top . title ( '视频窗口' ) top . geometry ( '900x600' ) image_width = 600 image_height = 500 canvas = Canvas ( top , bg = 'white' , width = image_width , height = image_height ) #绘制画布 Label ( top , text = '这是一个视频!' , font = ( "黑体" , 14 ) , width = 15 , height = 1 ) . place ( x = 400 , y = 20 , anchor = 'nw' ) canvas . place ( x = 150 , y = 50 ) while True : try : #关闭窗口后,由于没有采集图像帧,所以加载不到画布上,会弹出报错。采用异常跳出程序中止 pic = tkImage ( ) canvas . create_image ( 0 , 0 , anchor = 'nw' , image = pic ) top . update ( ) top . after ( 1 ) except : #关闭窗口后执行 cap . release ( ) #释放摄像头 top . mainloop ( ) #关闭窗口
此工具是基于VB的一个插件,可以输出 python 的tk代码 这是一个VB6的ADDIN(外接程序),用于使用VB6开发工具直接拖放控件,直接可视化完成 Python TKinter 的GUI布局和设计,可以在VB 界面 上设置 控件的一些属性,最终自动生成必要的代码(包括回调函数框架),代码生成后仅需要在对应的回调函数中增加相应的逻辑功能代码即可。 这个工具支持绝大部分TKiner控件,可应付一般GUI的需求。(列表参见下面的控件说明)。
下面这张就是实现的整体 界面 的示意图基本功能介绍:点击按键nextvideo会在下面的 界面 播放 视频 视频 播放完成后在预测语句后的文本框中出现对该 视频 的语义描述点击按键标注语句可以在其后的文本框中展示对该 视频 的标注语句这篇文章涉及的知识点还是挺多的哦: Tkinter 基本控件实现 TKinter 控件属性优化 Tkinter 实现 视频 播放Threading模块实现多线程编程1.0导入包、创建 界面 类1.1设置窗口标题、 界面 最大化具体的函数如下所示,先获得当前屏幕的大小,然后设置窗口大小。在__init__初始化中调用即可。1.2实现各个控件布局1)布局方式介绍布局就是控制各个控件在整个 界面 中的位置,Tkinte
1.选择 视频 文件 from tkinter .filedialog import askdirectory,askopenfilename from tkinter import * def selectPath(): path_ = askopenfilename() path.set(path_) root = Tk() path = StringVar() Label(root,text = "目标路径:").grid(row = 0, column = 0) Entry(root,
import tkinter as tk from tkinter import filedialog#文件控件 from PIL import Image, ImageTk#图像控件 import threading#多线程 #---------------创建窗口 window = tk.Tk() window.tit...
由于 tkinter 没有直接提供居中 显示 的api,因此,要想将tk的对话框居中 显示 ,需要用到tk自带的设定位置的方法geometry() nScreenWid, nScreenHei = tkLogin.maxsize() nCurWid = tkLogin.winfo_reqwidth() nCurHeight = tkLogin.winfo_reqheight() tkLogin.geometry({}x{}+{}+{}.format(nCurWid, nCurHeight, nScreenWid/2 - nCurWid/2, nScreenHei/2 - nCurHeight/2))
0 写在前面 这篇博客主要参考资料为《OpenCV 3计算机视觉 Python 语言实现》(Learning OpenCV 3 Computer Vison with Python )。 因为之前用Faster R-CNN做过一个红绿灯检测的小实践,但是Github提供的demo的输入只是几幅测试图片,而且 显示 用的matplotlib库,每个窗口必须手动关闭后才能 显示 下一个窗口,交互体验不好。 # 导入一些包 # opencv2 是 三方库 需要 pip install python -opencv video_path = './welcome.wmv' # 视频 的路径 win ...
# 将OpenCV图像转换为PIL图像 image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) image = Image.fromarray(image) # 将PIL图像转换为ImageTk格式,以便在 tkinter 显示 photo = ImageTk.PhotoImage(image) label.config(image=photo) label.image = photo # 每隔10毫秒更新一次画面 root.after(10, show_frame) # 启动循环 显示 画面 show_frame() # 启动 tkinter 窗口 root.mainloop() # 释放 摄像头 资源 cap.release() 希望能对您有所帮助!