版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元1读取和写入图像OpenCV数字图像处理1.OpenCV概述1.概述OpenCV是OpenSourceComputerVisionLibrary的简称,是一个被业界广泛使用的图像处理和计算机视觉开发工具库OpenCV项目由英特尔公司于1999开始开发,2006年,英特尔公司发布OpenCV1.0版本,2009年10月发布OpenCV2.0版本,目前,OpenCV已经发布了4.0版本2012年8月,英特尔公司把OpenCV的营运交由一个非营利组织(OpenCV.org)维护OpenCV提供了C++、Python、Java版本,能够安装在Linux、MacOS、Windows、iOS、Android等操作系统上2.OpenCV的优点提供开源的图像处理和计算机视觉库提供了2500个优化后的算法,计包括图像处理和计算机视觉最新算法支持机器学习和深度学习有一个开发者人数庞大的社区在使用和支持OpenCV
提供C++,Python,Java,以及MATLAB接口提供Windows,Linux,Android,和macOS版本快速定期的版本升级免费安装,免费使用3.OpenCV的模块从2.0开始,OpenCV分成了多个模块库,每个模块库负责处理一组图像处理或计算机视觉问题主要模块包括:3.OpenCV的模块Core:核心库,定义了基本数据结构和函数,被其他模块库调用Imagproc库:图像处理库,包括图像滤波,几何变换,颜色空间转换,直方图Imgcodecs库:图像文件的读取和写入Videoio库:视频文件的抓取,读取和写入Highgui库:高层图形用户界面,功能包括:创建和操作显示图像的窗口;为窗口界面提供键盘和鼠标操作的控件Video库:视频分析库,包括背景提取,运动估计,物体跟踪算法Calib3d库:相机配准和3D重构库,包括多维视角几何算法,立体对应算法,姿态估计,平面和立体配准,3D重构features2d:2维特征框架库,包括特征检测,描述子,描述子匹配3.OpenCV的模块objdetect:物体检测库,检测预先定义的物体,例如人脸,汽车,马路,猫,狗,桌子,瓶子邓等dnn:深度神经网络库,创建一个新层的接口,从层构造和修改神经网络的接口,从不同的深度学习框架导入串型网络ml:机器学习库,一组类和函数,用于分类,回归,聚类等等flann:聚类和搜索库,实现快速邻居搜索shape:外形距离计算和匹配库,根据外形实现匹配,检索和比较superres:方案提升库,提升现有算法性能viz:三维度可视库,实现与场景和组件的交互stitching:图像缝补库,videostab:视频稳定化库,photo:计算摄影学库4.OpenCV-Python绑定在OpenCV中,所有算法都是用C++实现的,但是这些算法函数可以用于不同的语言,如Python、Java调用绑定生成器在C++和Python之间架起了一座桥梁,使用户能够从Python调用C++函数modules/python/CMakeFiles.txt是一个CMake脚本,它自动检查所有要扩展的C++模块并抓取它们的头文件这些头文件被传递给绑定生成器modules/python/src2/gen2.py等脚本文件对这些文件编译后,提供了cv2模块2.开发环境的安装从官网下载好Anaconda安装文件安装开始的时候需要设置安装路径,如图所示这个路径最好容易记忆,因为后面要在它下面新建环境,并在IDE开发工具Pycharm或VSCode使用这个环境时,需要在这个路径下查找新建的环境安装AnacondaAnaconda运行以后首先新建环境,然后在环境中安装Python扩展包左图演示了如何新建环境安装Anaconda左图演示了新建一个名为“ai”的环境以后,在这个环境中安装OpenCV包的5个步骤按照上述5个步骤,依次安装本教程使用的扩展包numpy、matplotlib、scikit-learn、PIL(PythonImageLibrary)工具的安装包pillow新建Anaconda环境有的Python扩展包在上页图所示的界面找不到,这时候可以打开终端,使用命令执行安装。下图演示了在终端使用“pipinstallpytesseract“命令安装pytesseract的过程。使用同样的方式安装imutils等本教程使用的扩展包新建Anaconda环境运行PyCharm以后,首先需要创建项目,并设置这个项目的编译路径:1)选中新建好的项目,执行菜单Files中的Settings…,参见左图2)打开PythonInterpreter界面,点击右侧的AddInterpreter。3)在打开的新窗口中选SystemInterpreter,在Anaconda安装路径下找到新建的环境中的编译器,如右图所示,就可以在Pycharm中引用环境中安装的扩展包了。安装Pycharm并使用Anaconda环境PyCharm安装过程操作简单,根据默认设置即可安装完毕VSCode的安装过程非常简单,从VSCode官网下载适合你操作系统的安装包,按照默认设置很快能安装完毕运行以后参考左图所示两个步骤安装Python扩展包,就可以运行Python程序了安装VSCode并使用Anaconda环境VSCode运行以后,新建或打开一个文件夹,就可以开发项目了VSCode加载Anaconda环境操作也很简单:按住<Ctrl+Shift+P>组合键,在上部出现的文本框中输入命令”Python:SelectInterpreter”,如下图所示,在出现的下拉框中选中Anaconda中新建的环境,就可以在VSCode项目中使用这个环境中安装的各种Python包了。安装VSCode并使用Anaconda环境运行指定代码,检查OpenCV版本。若在Pycharm或VSCode中显示版本信息,表明安装完成测试安装成功操作测试安装是否成功3.读取、显示和写入图像1.图像的读写、显示和存储函数:im=cv2.imread(filename,flag=1)读取图像,带两个参数,filename是图像文件的路径,flag指定图像文件被读取的方式,常用参数有下列三个:cv2.IMREAD_COLOR,1,默认值
cv2.IMREAD_GRAYSCALE,0cv2.IMREAD_UNCHANGED,-1OpenCV4.5支持以下文件格式:Windows位图-*.bmp、*.dibJPEG文件-*.jpeg、*.jpg、*.jpeJPEG2000文件-*.jp2便携式网络图形-*.pngWebP-*.webp便携式图像格式-*.pbm、*.pgm、*.ppm*.pxm、*.pnmPFM文件-*.pfmSun栅格-*.sr、*.rasTIFF文件-*.tiff、*.tifOpenEXR图像文件-*.exrRadianceHDR-*.hdr,*.picGDAL支持的栅格和矢量地理空间数据1.图像的读写、显示和存储函数:imshow(winname,mat)显示图像,带两个参数,winname图像窗口名,mat图像矩阵
函数:k=waitkey(delay=0)等待敲击键盘,delay为等待时间,毫秒,默认为0,表示一直等待返回被敲的键的ASC编码;如果时间终止没有敲击,返回-1课堂练习:编写程序,读取并显示图像,waitKey()等待1秒如果没有敲击键盘,显示“自动结束!”,如果敲了,显示该键的ASC编码1.图像的读写、显示和存储函数:destroyWindow(winname)销毁指定的窗口,样例见右侧
函数:destroyAllWindows()销毁所有的窗口importcv2img=cv2.imread('flower.png',1)cv2.imshow('win1',img)cv2.waitKey(0)cv2.destroyWindow('win1')importcv2img=cv2.imread('flower.png',1)cv2.imshow('win1',img)cv2.waitKey(0)cv2.destroyAllWindows()1.图像的读写、显示和存储函数:v=imwrite(filename,img[,params])Filename为保存的文件名,img是图像矩阵,params是文件参数保存成功,返回True,失败返回False课堂练习:读取一个彩色图像,分别把RGB灰度图像保存到不同的文件中4.视频的读取和显示isOpened()判断是否成功初始化,read()读取视频帧,release()关闭文件或释放摄像头VideoCapture(filename)读取指定.mp4或.avi视频文件。VideoCapture(index)打开电脑上编号为index的摄像头通过构造函数VideoCapture(filename)或VideoCapture(index)打开视频文件或摄像头VideoCapture类使用介绍构造函数详解VideoCapture使用示例视频操作视频帧处理操作VideoCapture类应用示例使用构造函数读取视频,通过read()获取帧图像,显示图像帧并可处理后保存。设置帧间隔时间,如30ms,通过cv2.waitKey实现。当检测到键盘大写A时,结束视频播放。图像帧保存功能在循环中,将每一帧图像使用cv2.imwrite()保存为独立的图像文件,实现帧图像的保存。读取和显示视频importcv2video=cv2.VideoCapture(0)#video=cv2.VideoCapture("D:\\a.mp4")while(video.isOpened()):_,image=video.read()cv2.imshow("1",image)key=cv2.waitKey(30)ifkey==65:breakvideo.release()创建实例,组合图像帧为视频,设置编码、帧率和帧大小。filename指定输出文件,fourcc定义编码格式,fps为帧率,frameSize为图像尺寸,isColor默认为True。VideoWriter类使用介绍写入视频cv2.VideoWriter
(filename,fourcc,fps,frameSize,isColor=True)其中,filename:输出视频文件名;fourcc:FourCC编码,设置视频的编码和解码类型;
fps:设置帧率;frameSize:帧图像宽度和高度;isColor:是否为彩色图像。VideoWriter函数详解写入视频VideoWriter类定义了多个函数,包括静态函数fourcc()、写入函数write()、释放视频文件函数release()等等VideoWriter类的静态函数fourcc()用于指定视频编码格式,定义如下:retval
=cv2.VideoWriter_fourcc(c1,c2,c3,c4)retval
=cv2.VideoWriter_fourcc(*'code')其中,c1,c2,c3,c4:四个字符编码,用于组成FourCC
编码;code:字符串,最终拆解为四个字符,例如'mp4v'会被拆分为'm','p','4','v'。参数c1,c2,c3,c4和code常用取值见表1-3。函数cv2.VideoWriter_fourcc()的返回值是一个FourCC编码写入视频VideoWriter类的write()函数定义如下:write(img)这个函数带一个参数img,是写入视频的图像帧,每次调用写入一帧图像。这个函数没有返回值VideoWriter类的release()函数不带参数,也没有返回值,用于释放与视频文件及其相关联的资源。VideoWriter函数详解使用示例写入视频#保存摄像头拍摄的视频importcv2video=cv2.VideoCapture(0)#fc=cv2.VideoWriter_fourcc('I','4','2','0')fc=cv2.VideoWr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理管理知识培训执行力
- 护理个人工作总结与规划
- 《数控车削》-第六章教学用
- 高中物理教科必修二课件:1.1 曲线运动
- 2026年山东理工大学c语言试题及答案
- 安徽省安庆市怀宁县新安中学2026-2027学年高三上学期8月底学情调研政治试题(文字版含答案)
- 涂料夜间施工安全技术交底
- 安全生产报纸新闻汇编讲解
- 桥梁防撞护栏施工工艺
- 偏胖人群健康管理-1
- 2027届浙江省七彩阳光、浙南名校、精诚联盟、金兰教育高三上学期8月开学联考物理+答案
- 2025年动力电池回收利用商业计划书
- 第9课 安全文明上网 第2课时 课件(内嵌视频)2026-2027学年道德与法治四年级上册统编版
- 2026世界互联网大会文化遗产数字化案例集
- 2026年水利安全员b证考试题库及答案解析
- 2026年秋季小学数学苏教版六年级上册数学教学计划含进度表
- 供应链协同管理方法论文
- 中国结石用药市场需求前景规模及未来前景展望研究报告
- 肺癌脑转移护理查房
- 2027年物理高考一轮复习规划与策略
- 《阳光同学课时优化作业》25秋英语4年级上册(外研版)答案
评论
0/150
提交评论