GUI开发:实时显示摄像头图像
import tkinter as tk
from PIL import Image, ImageTk
import cv2
import numpy as np
import time g_exit = False def close_window():
global g_exit
g_exit = True def video_init():
cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)
time.sleep(2)
return cap def video_show():
cap = video_init()
while (cap.isOpened() and g_exit == False):
ret, frame = cap.read()
if ret == True:
frame = cv2.flip(frame, 1)
# 将图像的通道顺序由BGR转换成RGB
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
if isinstance(frame, np.ndarray):
frame = Image.fromarray(frame.astype(np.uint8)) photo = ImageTk.PhotoImage(image=frame)
image_cvs.create_image([320, 240], image=photo) win.update_idletasks()
win.update()
cap.release()
win.quit() if __name__ == '__main__':
win = tk.Tk()
image_cvs = tk.Canvas(win, width=640, height=480, bg='white')
image_cvs.pack() # 点击界面右上角的关闭按钮时,会触发'WM_DELETE_WINDOW'消息
# 我们在此截获该消息,并改变其行为
win.protocol('WM_DELETE_WINDOW', close_window) win.after(200, video_show)
win.mainloop()
在使用Canvas显式图片时,其image参数有两个重要的点需要注意,一个是格式,另外一个是要保持持续引用(可使用全局变量)。如下:
- The image object should be a PhotoImage or BitmapImage, or a compatible object (such as the PIL PhotoImage).
- The application must keep a reference to the image object.
GUI开发:实时显示摄像头图像的更多相关文章
- 30、在LCD上显示摄像头图像
1. 准备虚拟机2.安装工具链sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C /设置环境变量:sudo vi /etc/environment : PATH=& ...
- MFC HTML的img显示摄像头图像
cv::VideoCapture vc; vc.open(0); cv::Mat temp; vc.read(temp); //cv::resize(temp,temp,cv::Size(320,24 ...
- 基于MATLAB的GUI(Graphical User Interface)音频实时显示设计
摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧.通过”录音“按钮可以实现声音从电脑的声 ...
- [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)
本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...
- HSmartWindowControl 之 摄像头实时显示( 使用 WPF )
1.添加Halcon控件,创建WPF项目 在VS2013中创建一个WPF工程,然后添加halcon的控件和工具包,参见: HSmartWindowControl之安装篇 (Visual Studio ...
- 基于FPGA的图像开发平台 其他摄像头附件说明(OV5642 OV9655)
基于FPGA的图像开发平台 其他摄像头附件说明 FPGA_VIP_V101 编者 奇迹再现 个人博客 http://www.cnblogs.com/ccjt/ 联系邮箱 Shenyae86@163.c ...
- iNeuOS工业互联平台,WEB组态(iNeuView)集成rtmp和websocket视频元件,支持海康、大华等摄像头实时显示视频
目 录 1. 概述... 1 2. 平台演示... 2 3. 硬件摄像头... 2 4. 视频流协议转换管理... 2 5. 组态视频元件 ...
- Android+OpenCV 摄像头实时识别模板图像并跟踪
通过电脑摄像头识别事先指定的模板图像,实时跟踪模板图像的移动[用灰色矩形框标识] ps:一开始以为必须使用OpenCV Manager,可是这样会导致还需要用户去额外安装一个apk,造成用户体验很差, ...
- 运维开发:python websocket网页实时显示远程服务器日志信息
功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用 ...
随机推荐
- 防cc攻击策略
黑客攻击你的网站,会采取各种各样的手段,其中为了降低你网站的访问速度,甚至让你的服务器瘫痪,它会不断的刷新你的网站,或者模拟很多用户同一时间大量的访问你的网站, 这就是所谓的CC攻击,这就需要我们在程 ...
- docker笔记(2)-----容器连接
2019-01-12 13:57:36 Dockerfile基本结构: 基础镜像内容:FROM指明base image 维护者信息: 镜像操作指令:RUN指令,每运行一条RUN指令,镜像添加新的一层 ...
- 解决来自美国IP的攻击过程
1.因为最近接口文档confluence服务总是自动关闭. 解决方法: 1.查看阿里云上的报警提示,看到来自外国的Ip的攻击.这时我选择把攻击的IP加入黑名单. 加入黑名单的方法:https:// ...
- jenkins忘记admin密码解决办法
参考网址:https://www.jianshu.com/p/2995ae8157e7
- 悲观并发 乐观并发 Entity Framework Core中的并发处理
悲观并发策略 A用户发起一个请求 开启了事务 查询到了某一条数据 进行修改 在A提交事务之前 其他人都不能对这条数据进行修改 这种策略最常见的一个问题就是死锁 比如A修改X记录,B修改Y ...
- python __getattra__()
官网解释: object.__getattr__(self, name) Called when an attribute lookup has not found the attribute in ...
- 如何在Ubuntu 18.04上安装Pip
一.简介: Pip是一个软件包管理系统,它简化了用Python编写的软件包(如Python包索引(PyPI)中的软件包)的安装和管理. 在Ubuntu 18.04上缺省没有安装Pip,但安装非常简单. ...
- 2018-2019-2 网络对抗技术 20165303 Exp6 信息搜集与漏洞扫描
实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点(以自己主机为目标) (4)漏洞扫描:会扫,会看报告, ...
- 深入理解Plasma(四)Plasma Cash
这一系列文章将围绕以太坊的二层扩容框架 Plasma,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等.本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash. 在上一篇 ...
- OpenBUGS抽样数据基本操作
新建两个文件 第一个文件写操作程序,第二个文件写数据数量,类似于下图 鼠标聚焦在第一个文件中,点击工具栏的Model,选择Specification,然后点击check Moel,会有弹框出现 点击确 ...