版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目一使用OpenCV实现人脸检测嵌入式人工智能技术应用项目引导案例随着电子商务等应用的发展,人脸识别成为最有潜力的生物身份验证手段,这种应用背景要求自动人脸识别系统能够对一般图像具有一定的识别能力,由此所面临的一系列问题使得人脸检测开始作为一个独立的课题受到研究者的重视。今天,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容的检索、视频目标检测等方面有着重要的应用价值。思考一下,大家见过哪些场合用到人脸检测?项目引导案例OpenCV实现图像的读取与保存任务一职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一OpenCV实现图像的读取与保存了解opencv的使安装方法;掌握opencv读取图像方式;掌握opencv存储图像方式。能使用VideoCapture方法实例化摄像头对象;能使用set方法设置采集图像的像素;能使用namedWindow方法构建图像窗口;能使用read方法读取图像;能使用imshow方法展示图像;能使用imwrite方法保存图像。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一OpenCV实现图像的读取与保存
本实验将实现使用USB摄像头完成图像采集、图像显示以及图像保存。任务描述任务要求使用VideoCapture方法实例化摄像头对象;使用set方法设置采集图像的像素;使用namedWindow方法构建图像窗口;使用read方法读取图像;使用imshow方法展示图像;使用imwrite方法保存图像。任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一OpenCV实现图像的读取与保存任务分析实现opencv采集图像可能会涉及到哪些步骤?根据自己的了解可能会用到哪些硬件和软件?任务分析与计划03任务计划表项目名称使用OpenCV实现人脸检测任务名称OpenCV实现图像的读取与保存计划方式自主设计计划要求请用9个计划步骤来完整描述出如何完成本次任务序号任务计划1
2
3
4
5
6
789通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一OpenCV实现图像的读取与保存OpenCV204知识储备JupyterLab1Linux硬件设备3组成部分04菜单栏启动项文件栏插件栏交互模式Python交互式模式可以直接输入代码,然后执行,并立刻得到结果模块化界面可以在同一个窗口同时打开好几个notebook或文件同一文档多视图使你能够实时同步编辑文档并查看结果
支持多种数据格式你可以查看并处理多种数据格式主要特点04菜单功能文件文件和目录有关的操作编辑编辑文档和其他活动有关的动作。查看更改JupyterLab外观的动作运行用于在不同活动(例如笔记本和代码控制台)中运行代码的动作内核用于管理内核的操作,内核是运行代码的独立过程标签停靠面板中打开的文档和活动的列表设置常用设置和高级设置编辑器编辑JupyterLab和内核帮助链接的列表JupyterLab菜单栏菜单栏04操作按钮功能
保存内容,并创建检查点下方插入单元格剪切选中的单元格复制选中的单元格从剪切板粘贴单元格运行选定的单元格并向前移动终端内核JupyterLab和内核帮助链接的列表重启内核,并重新运行整个notebook单元格状态JupyterLab用户界面操作栏用户界面操作栏04快捷键功能Enter
转入编辑模式Shift-Enter运行本单元,选中下个单元Ctrl-Enter运行本单元Alt-Enter运行本单元,在其下插入新单元Y单元转入代码状态M单元转入markdown状态R单元转入raw状态A在上方插入新单元B在下方插入新单元DD删除选中单元格JupyterLab常用快捷键常用快捷键04OpenCV04知识储备JupyterLab21Linux硬件设备3
Opencv简介04
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。GaryBradsky于1999年在英特尔创立OpenCV,并于2000年发布第一个版本。OpenCV现在支持与计算机视觉和机器学习相关的众多算法,并且正在日益扩展。OpenCV支持各种编程语言,如C++、Python、Java等,可在不同的操作系统上使用。04OpenCV概述思考一下,OpenCV可在哪些操作系统上使用?
OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(IntegratedPerformancePrimitives)得到更快的处理速度。图1为OpenCV与当前其他主流视觉函数库的性能比较。04OpenCV优势优势:
Opencv-python简介04
opencv-python是由opencvC++实现并封装的Python库旨在解决计算机视觉问题。opencv-python使用numpy,这是一个高度优化的数据操作库,具有Matlab风格的语法。所有OpenCV数组结构都转换为numpy数组。这也使得与使用numpy的其他库(如scipy和matplotlib)集成更容易。
与C/C++等语言相比,Python速度较慢。也就是说,Python可以使用C/C++轻松扩展,这使我们可以在C/C++中编写计算密集型代码,并创建可用作Python模块的Python包装器。这给我们带来了两个好处:①
代码与原始C/C++代码一样快(因为它是在后台工作的实际C++代码),②
在Python中编写代码比使用C/C++更容易。OpenCV-Python是原始OpenCVC++实现的Python包装器。04OpenCV-python优势优势:VideoCapture()05创建VideoCapture对象的时候,我们需要传入一个合适的摄像头编号。cv2.VideoCapture(0)VideoCapture()05参数说明:VideCapture接受的参数为序号0:默认为开发板上的摄像头(如果有的话)/USB摄像头webcam1:USB摄像头22:USB摄像头3以此类推-1:代表最新插入的USB设备cap=cv2.VideoCapture(0)实例化一个对象赋值给captime.sleep(2)设置睡眠2秒,为了给摄像头有打开的时间OpenCV04知识储备JupyterLab21Linux硬件设备32Linux硬件设备05linux是以什么方式访问设备?
linux中是以访问文件的方式访问设备。就是将设备当做一个特殊的文件来进行读写等操作。因为Linux系统将所有的硬件设备都当做文件来处理,当使用光驱等硬件设备时,就必须将其挂载到系统中,只有这样Linux才能识别。当在Linux系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。Linux硬件设备05在linux中任何对象都是文件,查看当前是否有摄像头挂载到Ubuntu上,可以执行下面的命令行:-l:列出文件的详细信息。-t:以时间排序。-r:对目录反向排序。-h:显示出了文件的大小ls参数:/dev/video*:表示/dev/目录下所有以video为开头的文件!ls-ltrh/dev/video*职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一OpenCV实现图像的读取与保存05任务实施图像的读取与显示2Linux下查看USB摄像头设备1利用opencv采集图像05!ls-ltrh/dev/video*查看video设备在linux中任何对象都是文件,查看当前是否有摄像头挂载到Ubuntu上,可以执行下面的命令行:!ls-ltrh/dev/video*ls参数:-l:列出文件的详细信息;-t:以时间排序;-r:对目录反向排序;-h:显示出了文件的大小。/dev/video*:表示/dev/目录下所有以video为开头的文件。05任务实施图像的读取与显示2Linux下查看USB摄像头设备142设置与创建显示画面1创建摄像头实例3图像读取与显示图像保存与释放资源图像的读取与显示05图像的读取与显示已经查看到摄像头信息,接下来使用opencv从USB摄像头读取图像,并在开发板中显示出来。图像的读取与显示05importcv21.创建摄像头实例(1)导入cv2python-opencv在python中的包名称叫做cv2。cv2实现图像处理和计算机视觉方面的很多通用算法。cap=cv2.VideoCapture(0)(2)创建摄像头实例opencv读取usb摄像头的图像,需要用到VideoCapture类,创建VideoCapture对象的时候,我们需要传入一个合适的摄像头编号。cv2.VideoCapture(0)参数说明:VideCapture接受的参数为序号;0:默认为开发板上的摄像头(如果有的话)/USB摄像头webcam;1:USB摄像头2;2:USB摄像头3以此类推;-1:代表最新插入的USB设备。05cap.set(cv2.CAP_PROP_FRAME_WIDTH,1920)#画面宽度设定为1920cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)#画面高度度设定为10802.设置与创建显示画面(1)设置显示画面接下来利用cap.set方法对窗口像素进行设置
cap.set(propId,value)参数说明:propId表示VideoCaptureProperties中的属性标识符。cv2.CAP_PROP_FRAME_WIDTH表示设置摄像头采集画面宽的像素大小;cv2.CAP_PROP_FRAME_HEIGHT表示设置摄像头采集画面高的像素大小。value表示属性标识符的值,下面代码中,把采集画面像素宽度设置为1920,高度设置为1080。dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示(2)创建显示窗口dWindow(winname,flags):构建视频的窗口,用于放置图片。参数说明:winname:表示窗口的名字,可用作窗口标识符的窗口名称。flags:用于设置窗口的属性,常用属性如下:WINDOW_NORMAL:可以调整大小窗口;WINDOW_KEEPRATIO:保持图像比例;WINDOW_GUI_EXPANDED:绘制一个新的增强GUI窗口。图像的读取与显示图像的读取与显示05ret,frame=<1>3.图像读取与显示(1)读取图像使用cap.read()获取一帧图片,cap.read()返回值有两个,分别赋值给ret,frame。ret:若画面读取成功,则返回True,反之返回False;frame:是读取到的图片对象(numpy的ndarray格式)。cv2.imshow('image_win',frame)cv2.waitKey(100)(2)显示图片cv2.imshow(winname,mat)函数可以在窗口中显示图像。参数说明:winname:窗口名称(也就是我们对话框的名称),它是一个字符串类型;mat:是一帧的画面图像。可以创建任意数量的窗口,但必须使用不同的窗口名称;cv2.waitKey:waitkey控制着imshow的持续时间;当imshow之后不跟waitkey时,相当于没有给imshow提供时间展示图像,只会有一个空窗口一闪而过;cv2.waitKey(100)表示窗口中显示图像时间为100毫秒;cv2.imshow之后一定要跟cv2.waitKey函数。图像的读取与显示05cv2.imwrite('图像保存.png',frame)4.图像保存与释放资源(1)保存图片cv2.imwrite(filename,img)。参数说明:filename:要保存的文件名;img:要保存的图像。cap.release()#释放VideoCapturecv2.destroyAllWindows()#销毁所有的窗口(2)释放资源cap.release():停止捕获视频,用cv2.VideoCapture(0)创建对象,操作结束后要用cap.release()来释放资源,否则会占用摄像头导致摄像头无法被其他程序使用;cv2.destroyAllWindows():用来删除所有窗口。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一OpenCV实现图像的读取与保存任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分
理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)完成创建摄像头实例、设置与创建显示画面、图像读取与显示、图像保存与释放资源。(40分)40分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年公司劳动合同补充协议书
- 办公室装修改建合同范本
- 肺癌治疗各研究进展介绍
- 腰椎椎管狭窄的护理
- 电视剧动画制作合同文本
- 手术室手术标本的管理
- 急诊医疗护理查房
- 六年级语文上册22文言文二则-书戴嵩画牛 公开课一等奖创新教学设计
- 胃肠外科护理讲课比赛课件
- 38妇女节社区活动
- 【维生素C】大剂量协助你改善各种疾病-钱学森保健、贾平凹乙肝
- 珠宝店消防应急预案范文
- BQ40Z50 软件界面翻译
- 2023年度肿瘤科进修总结
- 《电视纪录片》课件
- 音乐学职业生涯规划书
- 外研版英语八年级上册-Module-7-
- 国开《Windows网络操作系统管理》形考任务2-配置本地帐户与活动目录域服务实训
- 环保设施安全风险评估报告
- 大学生职业生涯规划-我的生涯规划档案
- 国开《小学数学教学研究》形考任务三
评论
0/150
提交评论