logo资料库

基于Opencv-Python的数字图像处理.docx

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
摘 要
1绪 论
2设计任务
2.1课程设计的目的及意义
2.2课程设计任务与要求
3数字图像处理简介
3.1计算机视觉简介
3.2 数字图像处理研究的内容
3.3 数字图像处理与计算机视觉的区别
4 OpenCV简介
4.1 OpenCV软件
4.2 OpenCV的几个模块概述
5 Python简介
5.1 Python的来历
5.2 Python的特征
5.3 Python的应用
5.4 Python的局限性
5.5 Python之禅
5.6 OpenCV-Python简介
6 OpenCV-Python数字图像处理
6.1 OpenCV-Python基本操作
6.1.1读入图像
6.1.2显示图像
6.1.3保存图像
6.2 颜色空间转换
6.3 图像几何变换
6.3.1任意角度旋转
6.3.2 扩展缩放
6.4 图像平滑
6.5 高斯模糊(噪声)
6.6 中值模糊(噪声)
6.7 Canny边缘检测
6.8 直方图均衡化
6.9 傅里叶变换(频谱分析)
7 Python程序代码
7.1 Canny边缘检测
7.2 直方图均衡化
8 结果分析
参考文献
摘 要 数字图像处理( Digital Image Processing)又称为计算机图像处理,它是指将 图像信号转换成数字信号并利用计算机对其进行处理的过程。在数字图像处理过程中, 输入的是质量低的图像,输出的是改善质量后的图像, 常用的图像处理方法有图像增 强、复原、编码、压缩等。 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解 释型计算机程序设计语言,由荷兰人 Guido van Rossum 于 1989 年发明,第一个公开发 行版发行于 1991 年。Python 是纯粹的自由软件,源代码和解释器 CPython 遵循 GPL(GNU General Public License)协议。Python 语法简洁清晰,特色之一是强制用空白符 (whitespace)作为语句缩进。 Python 具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各 种模块(尤其是 C/C++)很轻松地联结在一起。常见的一种应用情形是,使 Python 快速 生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更 合适的语言改写,比如 3D 游戏中的图形渲染模块,性能要求特别高,就可以用 C/C++ 重写,而后封装为 Python 可以调用的扩展类库。需要注意的是在您使用扩展类库时可 能需要考虑平台问题,某些可能不提供跨平台的实现。7 月 20 日,IEEE 发布 2017 年编 程语言排行榜:Python 高居首位。 OpenCV 是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在 Linux、 Windows、Android 和 MacOS 操作系统上。它轻量级而且高效——由一系列 C 函数和少 量 C++ 类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和 计算机视觉方面的很多通用算法。 OpenCV 用 C++语言编写,它的主要接口也是 C++语言,但是依然保留了大量的 C 语 言接口。该库也有大量的 Python, Java and MATLAB/OCTAVE (版本 2.5)的接口。这些 语言的 API 接口函数可以通过在线文档获得。如今也提供对于 C#,Ch, Ruby 的支持。所 有新的开发和算法都是用 C++接口。一个使用 CUDA 的 GPU 接口也于 2010 年 9 月开始实 现。 关键词:Pyhton;OpenCV;OpenCV-Python;数字图像处理 I
II
目 录 1 绪 论......................................................................................................................................1 2 设计任务................................................................................................................................2 2.1 课程设计的目的及意义................................................................................................2 2.2 课程设计任务与要求....................................................................................................2 3 数字图像处理简介................................................................................................................4 3.1 计算机视觉简介...........................................................................................................4 3.2 数字图像处理研究的内容...........................................................................................4 3.3 数字图像处理与计算机视觉的区别...........................................................................5 4 OpenCV 简介..........................................................................................................................6 4.1 OpenCV 软件.................................................................................................................6 4.2 OpenCV 的几个模块概述.............................................................................................6 5 Python 简介.............................................................................................................................8 5.1 Python 的来历................................................................................................................8 5.2 Python 的特征................................................................................................................8 5.3 Python 的应用................................................................................................................9 5.4 Python 的局限性..........................................................................................................10 5.5 Python 之禅..................................................................................................................10 5.6 OpenCV-Python 简介...................................................................................................12 6 OpenCV-Python 数字图像处理............................................................................................13 6.1 OpenCV-Python 基本操作...........................................................................................13 6.1.1 读入图像.............................................................................................................13 6.1.2 显示图像.............................................................................................................13 6.1.3 保存图像.............................................................................................................14 6.2 颜色空间转换.............................................................................................................14 6.3 图像几何变换.............................................................................................................14 6.3.1 任意角度旋转.....................................................................................................14 6.3.2 扩展缩放............................................................................................................15 6.4 图像平滑.....................................................................................................................15 III
6.5 高斯模糊(噪声).....................................................................................................16 6.6 中值模糊(噪声).....................................................................................................16 6.7 Canny 边缘检测...........................................................................................................17 6.8 直方图均衡化.............................................................................................................18 6.9 傅里叶变换(频谱分析).............................................................................................. 18 7 Python 程序代码...................................................................................................................20 7.1 Canny 边缘检测...........................................................................................................20 7.2 直方图均衡化.............................................................................................................21 8 结果分析..............................................................................................................................22 总结..........................................................................................................错误!未定义书签。 致谢..........................................................................................................错误!未定义书签。 参考文献..................................................................................................................................23 IV
1 绪 论 图像信息是人类获得外界信息的主要来源,近代科学研究、军事技术、工农业生产、 医学、气象及天文学等领域中,人们越来越多地利用图像信息来认识和判断事物,解决 实际问题,由此可见图像信息的重要性,数字图像处理技术将会伴随着未来信息领域技 术的发展, 更加深入到生产和科研活动中, 成为人类生产和生活中必不可少的内容。 Python 作为一种高效简洁的直译式语言非常适合我们用来解决日常工作的问题。 而且它简单易学,初学者几个小时就可以基本入门。再加上 Numpy 和 matplotlib 这两 个翅膀,Python 对数据分析的能力不逊于 Matlab。Python 还被称为是胶水语言,有很 多软件都提供了 Python 接口。尤其是在 linux 下,可以使用 Python 将不同的软件组成 一个工作流,发挥每一个软件自己最大的优势从而完成一个复杂的任务。比如我们可以 使用 Mysql 存储数据,使用 R 分析数据,使用 matplotlib 展示数据,使用 OpenGL 进 行 3D 建模,使用 Qt 构建漂亮的 GUI。而 Python 可以将他们联合在一起构建一个强 大的工作流。 虽然 python 很强大,而且也有自己的图像处理库 PIL,但是相对于 OpenCV 来讲, 它还是弱小很多。跟很多开源软件一样 OpenCV 也提供了完善的 python 接口,非常便 于调用。OpenCV 的最新版是 3.4,包含了超过 2500 个算法和函数,几乎任何一个能想 到的成熟算法都可以通过调用 OpenCV 的函数来实现,超级方便。 数字图像处理在国民经济的许多领域已经得到广泛的应用。农林部门通过遥感图像 了解植物生长情况,进行估产,监视病虫害发展及治理。水利部门通过遥感图像分析, 获取水害灾情的变化。气象部门用以分析气象云图,提高预报的准确程度。国防及测绘 部门,使用航测或卫星获得地域地貌及地面设施等资料。机械部门可以使用图像处理技 术,自动进行金相图分析识别。医疗部门采用各种数字图像技术对各种疾病进行自动诊 断。数字图像处理在通信领域有特殊的用途及应用前景。传真通信、可视电话、会议电 视、多媒体通信,以及宽带综合业务数字网(B-ISDN)和高清晰度电视(HDTV)都采 用了数字图像处理技术。图像处理技术的应用与推广,使得为机器人配备视觉的科学预 想转为现实。计算机视觉或机器视觉迅速发展。计算机视觉实际上就是图像处理加图像 识别,要求采用十分复杂的处理技术,需要设计高速的专用硬件。 1
2 设计任务 2.1 课程设计的目的及意义 本次课程设计的目的在于将理论与实践相结合,加深对基础知识的理解。在实践中 逐步理解其原理,为以后的学习工作积累经验。 而意义在于提高大学生各方面综合素质,强化实践,提高实践能力。在实践中发现 问题、解决问题,不断积累、不断进取,锻炼大学生思维能力、动手能力,培养创新能 力。还能端正大学生的学习态度,只有认真、耐心的去做,才能够成功。因为在实际操 作中,会出现大大小小、难易不均的问题,这时就需要我们能够耐心的去调试,认真思 考如何解决问题。 2.2 课程设计任务与要求 2.2.1 课程设计要求 课程设计是要根据学生自选的题目进行电路及程序设计,通过软件仿真或硬件调试 来实现学生所选的题目,其具体要求为: 1、认真领会所选课程设计题目含意,查阅和运用相关技术资料,锻炼独立思考的 能力; 2、利用软件进行电路设计及程序编写,独立地完成仿真内容,自觉培养严谨求实的 科学作风; 3、认真完成课程设计论文(应包含仿真调试及验证结论、设计总结等内容)。 2.2.2 课程设计任务 自从学习了数字图像处理这门课程后,我对数字图像处理产生了浓厚的兴趣,而且 以后的研究和工作方向和图像处理相关,而且最后的大学本科毕业设计题目--基于图像 识别的岩石点荷载测试系统设计,所以本次课程设计还是和图像处理相关。 应我的毕业设计指导老师白帆老师要求,我的课程设计实现需要使用 OpenCV、 Python 来作为工具进行图像处理、图像识别等具体实现操作。所以,这次课程设计要为 下学期的毕业设计做铺垫,需要学习 OpenCV、Python、OpenCV-Python 的基本使用。由 于,本人学习过 C++语言,而 OpenCV 是 C++图像处理库,因此本次课程设计需要重温 C++ 2
语言,学习 OpenCV 工具包的使用,还有更重要的是要学习,最近几年火起来的全新的 面相对象编程语言—Python,重点是 Python 第三方库的使用。 上学期已经使用 matlab 的图像处理工具箱进行图像处理的课程设计,虽然,matlab 的强大的数字图像处理功能,终于可以部分的应用到图像处理的输入、处理、输出的实 践工程中去,matlab 因此成为当前的主流图像处理工具之一。但是,毕竟 matlab 是一 个虚拟仿真环境,毕竟,实践工程中不可能一直打开 matlab,而且,不是所有的计算机 都可以运行 matlab,这就是 matlab 的局限性。所以,工程实践中,常用的还是 OpenCV(基 于 C++),还有因简洁、强大的第三方库(各个领域)等为主要特点的全新语言 python, 如今,被广泛应用到实际工程中去。所以,这次课程设计,想要学习并掌握真正能够应 用到工程中去的 OpenCV-Python 图像处理工具。 3
3 数字图像处理简介 3.1 计算机视觉简介 计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影 机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使 电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视 觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智 能系统。这里所 指的信息指 Shannon 定义的,可以用来帮助做一个“决定”的信息。 因为感知可以看作是从感官信号中提 取信息,所以计算机视觉也可以看作是研究如何 使人工系统从图像或多维数据中“感知”的科学。 计算机视觉是使用计算机及相关设备对生物视觉的一种模拟。它的主要任务就是通 过对采集的图片或视频进行处理以获得相应场景的三维信息,就像人类和许多其他类生 物每天所做的那样。计算机视觉是一门关于如何运用照相机和计算机来获取我们所需的, 被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机)和大 脑(算法),让计算机能够感知环境。我们中国人的成语"眼见为实"和西方人常说的"One picture is worth ten thousand words"表达了视觉对人类的重要性。不难想象,具有视觉的 机器的应用前景能有多么地宽广。计算机视觉既是工程领域,也是科学领域中的一个富 有挑战性重要研究领域。计算机视觉是一门综合性的学科,它已经吸引了来自各个学科 的研究者参加到对它的研究之中。其中包括计算机科学和工程、信号处理、物理学、应 用数学和统计学,神经生理学和认知科学等。 3.2 数字图像处理研究的内容 一般的数字图像处理的主要目的集中在图像的存储和传输,提高图像的质量,改善 图像的视觉效果,图像理解以及模式识别等方面。新世纪以来,信息技术取得了长足的 发展和进步, 小波理论、神经元理论、数字形态学以及模糊理论都与数字处理技术相 结合, 产生了新的图像处理方法和理论。数字图像处理技术主要包括: 1、图像增强 目前图像增强技术根据其处理的空间不同,可分为空域法和频域法两大类,前者根 据在图像所在的像素空间进行处理, 后者是通过对图像进行傅里叶变换后在频域上间 接进行的。 4
分享到:
收藏