基于Python的深度学习图像处理 课件 第二章 Python语言编程基础_第1页
基于Python的深度学习图像处理 课件 第二章 Python语言编程基础_第2页
基于Python的深度学习图像处理 课件 第二章 Python语言编程基础_第3页
基于Python的深度学习图像处理 课件 第二章 Python语言编程基础_第4页
基于Python的深度学习图像处理 课件 第二章 Python语言编程基础_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章Python语言编程基础穷究于理·成就于工0203Python-OpenCV的应用Python的基本语法01Python语言简介目录穷究于理·成就于工01Python语言简介python的起源

Python语言的起源可以追溯到1980年代末,由荷兰计算机科学家GuidovanRossum构思并实现。

GuidovanRossum在1989年12月开始构思Python语言,起初是作为一个业余爱好项目,但在不断的更新迭代中变成了世界上最流行的编制语言之一。

Python的名字来源于Guido当时正在观看的英国喜剧团体MontyPython'sFlyingCircus,而不是指实际的蟒蛇。为什么要使用Python语言?简单易学、易读、易维护免费、开源的高层语言

Python是一种代表简单主义思想的语言,它使你能够专注于解决问题而不是去搞明白语言本身,而且Python语言极其容易上手,因为Python语言有极其简单的说明文档风格清晰划一、强制缩进。

Python语言是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。Python语言具有如下的优点:速度较快

Python语言的底层是用C语言编写的,很多标准库和第三方库也都是用C语言编写的,运行速度非常快。可移植性可扩展性、可扩充性

由于它的开源本质,Python语言已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD等等。Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。这使得使用Python语言更加简单。也使得Python程序更加易于移植。

Python语言本身被设计为可扩充的,并非所有的特性和功能都集成到语言核心。Python语言提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++语言、Python语言来编写扩充模块。Python编译器本身也可以被集成到其他需要脚本语言的程序内。因此,很多人还把Python语言作为一种“胶水语言”(gluelanguage)使用。使用Python语言将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如GoogleEngine使用C++编写性能要求极高的部分,然后用Python语言或Java/Go调用相应的模块。丰富的库高级动态编程

Python语言标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python语言的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等。解释性

一个用编译性语言比如C语言或C++语言写的程序可以从源文件(即C或C++语言)转换到一个计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。

Python语言的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python语言相提并论。Python语言的缺点1、单行语句和命令行输出问题:很多时候不能将程序连写成一行,如importsys;foriinsys.path:printi。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python语言一样,必须将程序写入一个.py文件。2、给初学者带来困惑:独特的语法,这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python语言程序员,也可能陷入陷阱当中。3、运行速度慢:这里是指与C语言和C++语言相比。Python语言开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python语言内。所以很多人认为Python语言很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python语言设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。02Python的基本语法2.2.1Python语言中的基本编程语法标识符与保留字Python语言默认utf-8编码,所有字符串都是unicode字符串。标识符的第一个字符必须是字母表中字母或下划线“_”。标识符的其他的部分有字母、数字和下划线组成。Python语言的注释Python语言的注释分为单行注释与多行注释。单行注释:#内容

多行注释:"""内容"""

或者'''内容'''使用缩进来表示代码块

进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。Python语言中的基本数据类型

Python语言中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)与Dictionary(字典)。Python语言中的基本编程语法Python语言中的运算符Python语言中数字运算符+、-、*、/、%与其他语言一样,括号()用于分组,/会保留小数部分,取而代之的是//。**运算符计算幂乘方,更高级计算需要引入数学计算库。Python语言也提供单引号'...'或双引号"..."标识字符。\可以用来转义,也可以使用原始字符串,方法是在第一个引号前面加上一个r会原样输出。Python语言中的切片与类型判断

在Python语言中要取得一段子串的话,可以用到​变量[头下标:尾下标]​,就可以截取相应的字符串。Python语言中的基本编程语法Python语言中的输入输出流在Python语言中使用input()函数作为输出流,print()函数作为输入流。例如:name=input()

print(name)Python语言中的变量

Python语言中的变量是存储在内存中的值。就是指针无关数据类型,解释器会分配指定大小的内存。Python语言中的文本换行

在Python语言中使用+\起到多行连接的作用。2.2.2Python语言的基本流程控制Python语言在编程中的基本流程控制,包括条件判断与循环

Python语言中判断只有if...elif....else,只有两条判定路径是就是有if...else,有多条判定条件时就使用if....elif....else

Python语言中循环有两种,一种是while循环,一种是for循环,循环的意义就是可以按条件循环循环体内的指令,完成重复性的操作。1、条件判断2、循环2.2.2Python语言的基本流程控制

while循环顾名思义就是当什么时候,如果满足条件就执行while循环下面的循环体内容,反之当不满足条件的时候就不执行循环,这样结束循环后又会回到判断条件这里来,这时你也发现了,只要条件一直为真,那么他将马不停蹄的运行下去,就跟永动机一样,这就是所谓的死循环,所以我们用来判断的这个条件,不能是一个常量,判断条件需要时变化的,就是要赋值一个计数器,并且计数器循环一次改变一次,不然就是一个死循环,程序就永远也不会结束

for循环后面必须接一个可迭代的对象,什么是可迭代的对象呢?先把可以把它想象成糖葫芦,以后自然会理解,这个迭代的对象就是一串糖葫芦,可以每次取一颗下来吃,这就是可迭代。for循环就是每次取一颗糖葫芦出来,直到取完为止,也就是说有几个糖葫芦就循环几次。2.1while循环2.2for循环2.2.3Python语言的内置库和函数Python是一种功能强大的编程语言,它提供了大量的内置库和函数,用于执行各种任务。os提供与操作系统交互的函数,如文件操作、目录管理等。sys提供对Python解释器的一些变量和函数的访问math提供数学运算的函数和常量,如sqrt(),sin(),cos(),pi等。random用于生成随机数。json用于处理JSON数据格式。re正则表达式库,用于字符串匹配和搜索。2.2.4Python语言的面向对象

Python是一种面向对象的编程语言(Object-OrientedProgramming,OOP)。在面向对象编程中,程序员使用对象来设计应用程序和模拟现实世界的实体。每个对象都包含数据和操作这些数据的方法(函数)。这些数据和方法通常封装在一个类中,而类则定义了创建对象的模板。Python面向对象编程的几个核心概念:1、类

。2、对象。3、属性。4、方法。5、继承。6、多态。7、封装。8、抽象。9、接口。10、组合。类是对象的蓝图或模板,它定义了对象所共有的属性和方法。1、类2、对象对象是类的实例。通过调用类并传递参数来创建对象。3、属性属性是对象的特征,通常通过变量来表示。在上面的例子中,name和age就是Dog类的属性。2.2.4Python语言的面向对象方法是与对象相关联的函数。在上面的例子中,bark就是Dog类的一个方法。4、方法5、继承一个类可以继承另一个类的属性和方法,这样可以复用代码,提高程序的可维护性。6、多态多态意味着不同的对象对同一消息可以做出不同的响应。在Python中,由于鸭子类型(ducktyping),多态性很自然地得到了支持。7、封装封装是将对象的属性和方法隐藏起来,只对外提供必要的接口。这样可以保护数据不被外部直接访问和修改,提高程序的安全性。在Python中,通过__private_method这样的命名约定来实现“私有”属性和方法,但实际上并没有严格的私有属性,因为可以通过对象的__dict__属性来访问它们。2.2.4Python语言的面向对象抽象是将复杂的现实世界概念简化为程序可以理解的模型。在Python中,可以通过抽象基类(ABC)来实现抽象。8、抽象9、接口接口定义了对象的一组方法,但没有实现这些方法。在Python中,可以使用抽象基类(ABC)或者协议(即不使用@abstractmethod装饰器但定义了应该被覆盖的方法的基类)来模拟接口。10、组合组合是一种将对象组合成更复杂对象的方式。通过组合,可以将已有的对象组合成新的对象,以实现更复杂的功能。2.2.5Python语言的异常处理Python提供了异常处理机制,允许程序在运行时遇到错误或异常情况时优雅地处理这些错误,而不是简单地崩溃。异常处理主要由try,except,finally,else和raise等关键字组成.2.2.6Python语言的IO处理Python语言提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可以很方便地将数据保存到文件(如文本文件等)中。文件的应用级操作可以分为以下3步,每一步都需要借助对应的函数实现:1)打开文件:使用open()函数,该函数会返回一个文件对象。2)对已打开文件做读/写操作:读取文件内容可使用read()、readline()以及readlines()函数;向文件中写入内容,可以使用write()函数。3)关闭文件:完成对文件的读/写操作之后,最后需要关闭文件,可以使用close()函数。Python语言提供了如下3种函数,它们都可以帮实现读取文件中数据的操作:read()readline()readlines()Python语言中的文件对象提供了write()函数,可以向文件中写入指定内容。Python语言实现对文件指针的移动,文件对象提供了tell()函数和seek()函数。03Python-OpenCV的应用Open-CV的简介

Open-CV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,由GaryBradski在1999年发起,旨在通过为计算机视觉和人工智能的从业者提供稳定的基础架构来推动产业发展。Open-CV项目由GaryBradski在英特尔任职时启动,其初衷是为计算机视觉和人工智能领域的研究人员和开发者提供一个强大而稳定的基础架构。自项目成立以来,Open-CV获得了来自英特尔和谷歌等公司的大力支持,尤其是Itseez公司,它完成了早期开发的大部分工作。2016年,英特尔收购了Itseez公司,以进一步推动Open-CV在深度学习、计算机视觉等领域的应用。Open-CV的应用领域非常广泛,包括但不限于图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。它还被应用于医学图像处理、安保领域、交互操作、相机校正、双目视觉以及机器人学等多个领域。Python-OpenCV的基本图像处理操作

Python-OpenCV的基本图像处理操作涵盖了多个方面,以下是对这些操作的清晰归纳和分点表示:1、读取、显示与存储图像cv.imread()函数可以按照不同模式读取,一般最常用到的是读取单通道灰度图,或者直接默认读取多通道。imshow()函数用于显示图像。cv.imwrite()函数用于储存图像。Python-OpenCV的基本图像处理操作2、图像调整大小

在OpenCV中,可以使用resize()函数调整图像形状的大小。要首先调整图像的大小,需要知道图像的形状。可以使用shape来找到任何图像的形状,然后根据图像形状,可以增加或减小图像的大小。如果不想对宽度和高度进行硬编码,也可以使用形状,然后使用索引来增加宽度和高度。Python-OpenCV的基本图像处理操作3、图像HSV空间

可以通过HSV空间对色调和明暗进行调节。HSV空间是由美国的图形学专家A.R.Smith提出的一种颜色空间,HSV分别是色调(Hue)、饱和度(Saturation)和明度(Value)。在HSV空间中进行调节就避免了直接在RGB空间中调节,但是还需要考虑三个通道的相关性。OpenCV中H的取值是[0,180],其他两个通道的取值都是[0,256]。Python-OpenCV的基本图像处理操作4、图像二值化图像二值化处理是将像素点的值突出为0,255,使得图片呈现黑白两种颜色。在灰度图像中像素值在0~255,二值化后图像中像素值为0或255。CV_THRESH_BINARY表示如果当前像素点的灰度值大于阈值则将输出图像的对应位置像素值置为255,否则为0。在opencv常用的阈值处理函数除上述演示外还有四种,分别是THRESH_BINARY_INV、THRESH_TRUNC、THRESH_TOZERO、THRESH_TOZERO_INV。Python-OpenCV的基本图像处理操作5、图像滤波滤波是根据原有图像的某个像素的周围像素来确定新的像素值,滤波器主要的作用是用来消去噪的,消除图像中的不合理的像素点。OpenCV中基本的滤波操作包括均值滤波(通过求与单位矩阵做内积和的平均值做图像处理)、高斯滤波(根据正态分布处理图像,越靠近中心点,值越接近)与中值滤波(根据正态分布处理图像,越靠近中心点,值越接近)。Python-OpenCV的基本图像处理操作6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论