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技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用 ...
随机推荐
- Wannafly挑战赛1 C MMSet2 虚树
题目链接:https://www.nowcoder.com/acm/contest/15/C 思路:虚树,取两点间的lca,构造成一颗新的树:求(直径+1)/2即可 #pragma comment(l ...
- Cannot resolve classpath entry: /Program Files/IBM/SQLLIB/java/db2java.zip
在mybatis的逆向工程中,使用java代码和xml配置文件生成时出现以下的错误 原来自己在复制官方配置文件的参考时将这一句也复制了进来 删掉后运行即可!成功的话控制台是没有输出的
- JAVA-类方法与实例方法
1.实例方法:一个方法如果不加static关键字,那么这个方法是实例方法.意思是他属于类的某个实例,通过这个实例调用它,对类的其他实例不产生影响. 2.类方法:也称静态方法.在方法前加static关键 ...
- java第一次,第二次实训
本次作业通过自己的练习和理解还是可以写出来的,最后两个题目我暂时没有写 编写程序: 声明一个整型变量a,并赋初值5,在程序中判断a是奇数还是偶数,然后输出判断的结果. 编写程序:从键盘输入圆的半径,计 ...
- JAVA程序设计的第一次作业
这是我第一次接触博客,刚开始用博客很生疏,感觉很麻烦,但是后来慢慢从老师那里了解到了许多博客可以带给我们的便利.通过博客,我们不仅可以记录自己从刚开始进入程序学习的懵懵懂懂到后来想要学,想深究,想探讨 ...
- C# WPF开发之MVVM模式开发
MVVM模式由Model,View,ViewModel三部分组成. Model需继承INotifyPropertyChange(属性修改通知) ViewModel负责业务逻辑,连接View和Model ...
- php获取id
private static function getClientIp() { if (getenv('HTTP_X_FORWARDED_FOR')) { $tmp = explode(',', ge ...
- cmd命令行结果保存到txt里,屏幕显示一行就保存一行到txt
#coding:utf-8 """ 1.重定向print 2.python与cmd命令 """ import sys import os i ...
- BUAA_OO第一单元作业总结
BUAA_OO第一单元作业总结 单元任务 第一单元的任务为实现表达式的求导,其中第一次作业是对简单多项式的求导,第二次作业是对包含简单幂函数和简单正余弦函数的多项式的求导,第三次作业是对包含简单幂函数 ...
- gulp打开gbk编码的html文件乱码
先上图,好忧伤: