将opencv的视屏流嵌入wxpython的框架中
(2018-11-12 00:49:40)分类: 机器视觉 |
#!Anaconda/anaconda/python
#coding: utf-8
"""
从视屏中识别人脸,并实时标出面部特征点
"""
import dlib
# 人脸识别的库dlib
import numpy as np
# 数据处理的库numpy
import cv2
# 图像处理的库OpenCv
import wx
# 构造显示界面的GUI
COVER = 'camera.png'
class face_emotion(wx.Frame):
def
__init__(self,parent,title):
wx.Frame.__init__(self,parent,title=title,size=(600,600))
self.panel = wx.Panel(self)
self.Center()
# 封面图片
self.image_cover = wx.Image(COVER,
wx.BITMAP_TYPE_ANY).Scale(350,300)
# 显示图片在panel上
self.bmp = wx.StaticBitmap(self.panel, -1,
wx.Bitmap(self.image_cover))
start_button = wx.Button(self.panel,label='Start')
close_button = wx.Button(self.panel,label='Close')
self.Bind(wx.EVT_BUTTON,self.learning_face,start_button)
self.Bind(wx.EVT_BUTTON,self.close_face,close_button)
# 基于GridBagSizer的界面布局
# 先实例一个对象
self.grid_bag_sizer = wx.GridBagSizer(hgap=5,vgap=5)
# 注意pos里面是先纵坐标后横坐标
self.grid_bag_sizer.Add(self.bmp, pos=(0, 0), flag=wx.ALL |
wx.EXPAND, span=(4, 4), border=5)
self.grid_bag_sizer.Add(start_button, pos=(4, 1), flag=wx.ALL |
wx.ALIGN_CENTER_VERTICAL, span=(1, 1), border=5)
self.grid_bag_sizer.Add(close_button, pos=(4, 2), flag=wx.ALL |
wx.ALIGN_CENTER_VERTICAL, span=(1, 1), border=5)
self.grid_bag_sizer.AddGrowableCol(0,1)
#grid_bag_sizer.AddGrowableCol(0,2)
self.grid_bag_sizer.AddGrowableRow(0,1)
#grid_bag_sizer.AddGrowableRow(0,2)
self.panel.SetSizer(self.grid_bag_sizer)
# 界面自动调整窗口适应内容
#coding: utf-8
"""
从视屏中识别人脸,并实时标出面部特征点
"""
import dlib
import numpy as np
import cv2
import wx
COVER = 'camera.png'
class face_emotion(wx.Frame):