代码拉取完成,页面将自动刷新
同步操作将从 大奥特曼打小怪兽/opencv 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# -*- coding: utf-8 -*-
"""
Created on Sat Apr 14 12:27:01 2018
"""
'''
OPenCV3 计算机视觉 笔记
第二章 : 处理文件,摄像头和图形用户界面
Cameo项目(人脸跟踪和图像处理)
'''
'''
采用面向对象设计方法
定义了Cameo类
'''
import cv2
from _2managers import CaptureManager,WindowManager
import time
import os
import _5filters
class Cameo(object):
def __init__(self):
#创建窗口管理器和视频捕获管理器
self.__window_manager = WindowManager('Cameo',self.on_key_press)
self.__capture_manager = CaptureManager(cv2.VideoCapture(0),self.__window_manager,True)
self.__filter = _5filters.SharpenFilter()
def run(self):
'''
运行主循环
'''
#创建窗口
self.__window_manager.create_window()
#循环捕获每一帧图像,并显示 直至窗口销毁
while self.__window_manager.is_window_created:
#获取一帧图像 并在指定的窗口显示
self.__capture_manager.enter_frame()
frame = self.__capture_manager.frame
'''
这里可以对这一帧图像进行处理
'''
_5filters.strokeEdges(frame,frame,blurKsize=5)
self.__filter.apply(frame,frame)
self.__capture_manager.exit_frame()
#执行键盘回调函数
self.__window_manager.process_event()
#销毁对象
self.__capture_manager.release()
def on_key_press(self,keycode):
'''
键盘事件回调函数
space -> 截屏
tab -> 开始/结束视频录制
escape->销毁窗体 并退出run()循环
'''
#获取当前时间
cur_time = time.strftime('%Y-%m-%d %H_%M_%S',time.localtime(time.time()))
dir_name = './cameo'
#文件保存目录
if not os.path.isdir(dir_name):
os.mkdir(dir_name)
cur_time = dir_name + '/' + cur_time
if keycode == 32: #space
#保存图片
self.__capture_manager.write_image(cur_time+'_screenshot.jpg')
print('截屏成功!')
elif keycode == 9: #tab
if not self.__capture_manager.is_writing_video:
#开始保存视频
self.__capture_manager.start_write_video(cur_time+'_.avi')
print('开始录制视频!')
else:
#停止保存视频
self.__capture_manager.stop_write_video()
print('视频录制结束!')
elif keycode == 27: #escape
self.__window_manager.destory_window()
print('关闭窗体!')
if __name__ == '__main__':
cameo = Cameo()
cameo.run()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。