wxpython视频教程下载-闪烁wxpython显示摄像头视频

我是新来的蟒蛇。我正在尝试编写一个动作检测应用程序。目前,我正试图让网络摄像头的视频显示在屏幕上。目前的代码现在一开始没有闪烁,但是在任何调整大小之后,闪烁将会回来。任何线索?另外,为什么它没有self.Refresh()在定时器事件中工作,是不是总是发生绘画事件,除非框架被最小化?提前致谢。闪烁wxpython显示摄像头视频

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()

2012-02-27

Roger.C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值