我是python的新手.我正在尝试编写一个运动检测应用程序.目前,我正在尝试将网络摄像头视频显示在屏幕上.当前的代码现在没有闪烁,但在任何调整大小后,闪烁将会回来.任何线索?另外,为什么没有self.Refresh()在timer事件中它不工作,除非框架被最小化,否则不会发生paint事件?提前致谢.

import wx

import cv

class LiveFrame(wx.Frame):

fps = 30

def __init__(self, parent):

wx.Frame.__init__(self, parent, -1, title="Live Camera Feed")

self.SetDoubleBuffered(True)

self.capture = None

self.bmp = None

#self.displayPanel = wx.Panel(self,-1)

#set up camaera init

self.capture = cv.CaptureFromCAM(0)

frame = cv.QueryFrame(self.capture)

if frame:

cv.CvtColor(frame,frame,cv.CV_BGR2RGB)

self.bmp = wx.BitmapFromBuffer(frame.width,frame.height,frame.tostring())

self.SetSize((frame.width,frame.height))

self.displayPanel = wx.Panel(self,-1)

self.fpstimer = wx.Timer(self)

self.fpstimer.Start(1000/self.fps)

self.Bind(wx.EVT_TIMER, self.onNextFrame, self.fpstimer)

self.Bind(wx.EVT_PAINT, self.onPaint)

self.Show(True)

def updateVideo(self):

frame = cv.QueryFrame(self.capture)

if frame:

cv.CvtColor(frame,frame,cv.CV_BGR2RGB)

self.bmp.CopyFromBuffer(frame.tostring())

self.Refresh()

def onNextFrame(self,evt):

self.updateVideo()

#self.Refresh()

evt.Skip()

def onPaint(self,evt):

#if self.bmp:

wx.BufferedPaintDC(self.displayPanel, self.bmp)

evt.Skip()

if __name__=="__main__":

app = wx.App()

app.RestoreStdio()

LiveFrame(None)

app.MainLoop()

解决方法:

我找到了解决这个问题的方法.闪烁来自面板清除其背景.我必须创建一个面板实例并使其EVT_ERASE_BACKGROUND绕过.另一件事是我必须将网络摄像头例程放在该面板中,并在面板上绘制BufferPaintedDC图.出于某种原因,如果wx.BufferedPaintedDC从帧中绘制到self.displaypanel,则闪烁仍然存在.

标签:python,opencv,wxpython,webcam

wxpython播放视频_使用wxpython显示网络摄像头视频闪烁相关推荐

  1. Python调用OpenCV接口播放本地视频文件、本地和网络摄像头

    1 前言 上篇文章介绍了在WIN10系统上, C++调用OpenCV接口,播放本地视频文件.本地和网络摄像头视频.本篇我们来看一下,Python如何调用OpenCV接口,做同样的事情. 序号 视频来源 ...

  2. python opencv 拍照_在jupyter noteb中使用opencv显示网络摄像头中的图像

    我正在尝试显示网络摄像头拍摄的图像.但是,存储捕获图像的变量是空的.此问题仅在使用网络摄像头时出现,而不是在播放mp4等视频时出现.这个问题是由Python版本引起的吗?我的OpenCV版本是3.4. ...

  3. RTSP安防网络摄像头/海康大华硬盘录像机/NVR网页无插件低延时播放流媒体服务器EasyNVR页面显示网络请求失败问题

    进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. 青犀团队研发的EasyNVR核心在 ...

  4. 火车头过滤 css样式_HTML5和CSS3过滤器中的网络摄像头视频捕获

    火车头过滤 css样式 Webcam Video Capture in HTML5 and CSS3 filters As we know – HTML5 defines a new element ...

  5. 远程实时读取海康威视4G网络摄像头视频

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 远程实时读取海康威视4G网络摄像头视频 ==有用的废话== 背景 ==重点== 步骤 总结 有用的废话 购买海康威视4G网络摄像头时, ...

  6. VLC捕获网络摄像头视频(rtsp协议)

    工具:笔记本,嵌入式开发板(rk3399c),网络摄像头(Hi3516) 一.笔记本上以VLC获取网络摄像头视频 ① 右下角串流,点击. ② 下一个,这里似乎修改不了,有小伙伴知道怎么修改的可以私聊我 ...

  7. 安防监控系统流媒体服务器,搭建一套安防监控系统RTSP/Onvif网络摄像头视频流媒体服务有哪些核心要素?...

    原标题:搭建一套安防监控系统RTSP/Onvif网络摄像头视频流媒体服务有哪些核心要素? 在现代信息社会,人民的生活水准不断提高,因而对安全的需求也越来越迫切.特别自"9·11"与 ...

  8. vue项目使用大华摄像头怎样初始化_【译】如何使用Vue捕获网络摄像头视频

    几个月前,我一直关注着比特币的爆发并且在GDAX网站上注册账号.在注册验证的过程中,网站提示要通过计算机的网络摄像头提交我自己的一张照片作为照片ID.这是一个很酷的做法,让我思考一个问题:在网络浏览器 ...

  9. java照片切换播放音乐_怎么将照片制作成视频并添加音乐呢

    目前在网上刷抖音和快手等短视频都能看到一种风格的视频,那就是电子相册视频.也就是把所有的图片放在一起,然后使用软件将图片变成视频播放出来.其实这些使用软件都会非常简单的.这种视频编辑功能不管在手机端还 ...

最新文章

  1. info java module_如何在Jdk9 / java-9中解决module-info.java编译错误
  2. 互联网金融产品需要什么样的产品经理?
  3. Redis开发:发布/订阅消息示例
  4. iOS经典面试题之使用runtime associate方法关联的对象释放及dealloc底层原理
  5. sharepoint ECMA
  6. CA周记 - 用 Visual Studio Code 做基于 .NET MAUI 跨平台移动应用开发
  7. linux多线程访问共享资源,多个线程访问共享对象和数据
  8. java string字符操作_Java对String类型字符串的各种操作姿势
  9. (转)基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用...
  10. pythonlauncher可以卸载吗_python的launcher用法知识点总结
  11. python代码打包成apk反编译_python程序打包和反编译
  12. 协同过滤算法及python实现
  13. 能自行调节温度的新型织物 马里兰大学新发明引发讨论
  14. 港股通换汇、红利、交易费用、资金清算规则
  15. July's English
  16. XML系列(一)------初识XML
  17. Java教务管理系统
  18. 海康威视rtsp转rtmp
  19. 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程
  20. 北上深杭广漂,似曾相识的代码人生(转知乎)

热门文章

  1. ELK Stack 日志平台性能优化实践
  2. 双系统如何在Centos7中添加GRUB2启动项
  3. ibatis中iterate的用法(conjunction=or ,)
  4. 【MySQL】通信协议
  5. 网络管理与维护作业10
  6. spring boot之http,页面状态跳转与异常处理实战
  7. springboot在启动jar由于配置hibernate的映射文件上classpath导致的!BOOT-INF/classes/!路径出现!号问题解决方法
  8. jsp页面之间传中文参数显示乱码问题的解决
  9. 3个方法解决百度网盘限速 (2018-07-20)
  10. 标准Android按钮具有不同的颜色