收藏 分销(赏)

Python第九章.ppt

上传人:精**** 文档编号:10252423 上传时间:2025-04-30 格式:PPT 页数:47 大小:1.35MB 下载积分:14 金币
下载 相关 举报
Python第九章.ppt_第1页
第1页 / 共47页
Python第九章.ppt_第2页
第2页 / 共47页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,理论学习 案例学习 学习活动 学习评测 参考资料,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,理论学习 案例学习 学习活动 学习评测 参考资料,1,第,9,章,Python,数字图像处理,2,个人简介,任课教师:王学军,职 称:教授,所在单位:计算机科学技术系,联系电话:,36713,邮箱地址:,wangxj,QQ:593159321,3,本章重点难点,本章重点,什么是数字图像,PIL,库安装,使用,Python,图像处理类库,PIL,OPenCV,库安装,使用传统的图像处理类库,OpenCV,Matplotlib,绘制图形,本章难点,PIL,、,OPenCV,安装与使用,Matplotlib,绘图的使用,4,目录,9,.1,基本图像操作和处理,9,.2,Python,图像处理类库,PIL,9,.3,Python,中使用,OpenCV,9.4 Matplotlib,绘图库,9.5,编程实践,5,9,.1,基本图像操作和处理,9,.1.1,图像和像素,图像(,Image,)是用各种观测系统(如照相机、遥感设备等)以不同形式和手段观测客观世界而获得的,可以直接作用于人眼,进而直接或间接的产生视觉的实体。据统计,人类从外界获得的信息约有,75%,是来自视觉系统,而视觉信息来源于图像,例如照片、绘图、草图、动画等。,图像可以分解为许多个单元。每个基本单元叫做图像元素,简称像素(,picture element,)。对,2D,图像,英文常用,pixel,(或,pel,)代表像素。一幅图像在空间上的分辨率与其包含的像素个数成正比。像素个数越多,像素的分辨率就越高,越能看清图像的细节。,。,6,在,Python,中,图像所用的坐标系与在屏幕显示中采用的坐标系相同,如图,9-1,所示,它的原点,O(origin),在图像的左上角,纵轴标记图像的行,横轴标记图像的列。坐标经常用于二元组(,x,y,)。长方形则表示为四元组,前面是左上角坐标。例如,一个覆盖,800 x600,的像素图像的长方形表示为(,0,0,800,600,)。,7,9,.1.1,图像和像素,1,RGB,颜色模型,计算机显示器使用的阴极射线管(,Cathode Ray Tube,,,CRT,)是一个有源物体,,CRT,使用,3,个电子枪分别产生红色(,Red,)、绿色(,Green,)、蓝色,(Blue)3,种波长的光,并以各种不同的相对强度综合起来产生颜色。组合这,3,种光波以产生特定颜色称为相加混色,因此这种模式又称,RGB,相加模式。,8,9.1.2,颜色空间,9.1.2,颜色空间,2,CMYK,颜色模型,CMY,模型是使用青色,(Cyan),、品红,(Magenta),、黄色,(Yellow)3,种基本颜色按一定比例合成色彩的方法。,CMY,模型与,RGB,模型不同,因为色彩不是直接由来自于光线的颜色产生的,而是由照射在颜料上反射回来的光线所产生的。颜料会吸收一部分光线,而未吸收的光线会反射出来,成为视觉判定颜色的依据。利用这种方法产生的颜色称为相减混色。,在相减混色中,当,3,种基本颜色等量相减时得到黑色或灰色;等量黄色和品红相减而青色为,0,值时得到红色;等量青色和品红相减而黄色为,0,值时得到蓝色;等量黄色和青色相减而品红为,0,值时得到绿色。,3,种基本颜色相减结果如图,9-3,所示。,9,9.1.2,颜色空间,3,HSL,颜色模型,RGB,模型和,CMYK,模型都是适应产生颜色硬件的限制和要求形成的,而,HSL,模式则是模拟了人眼感知颜色的方式,比较容易为从事艺术绘画的画家们所理解。,HSL,模式使用色调,(Hue),、饱和度,(Saturation),和亮度,(Lightness)3,个参数来生成颜色。利用,HSL,模式描述颜色比较自然,但实际使用却不方便,例如显示时要转换成,RGB,模式,打印时要转换为,CMYK,模式等。,10,9.1.2,颜色空间,4,YUV/YIQ,颜色模型,在彩色电视系统中,使用,YUV,模型或,YIQ,模型来表示彩色图像。在,PAL,制式中使用,YUV,模式,其中,Y,表示亮度,,U,、,V,表示色度,是构成彩色的两个分量。在,NTSC,制式中使用,YIQ,模式,其中,Y,表示亮度,,I,、,Q,是两个彩色分量,YUV,模型的优点是亮度信号和色度信号是相互独立的,即,Y,分量构成的亮度图与,U,或,V,分量构成的带着彩色信息的两幅单色图是相互独立的,所以可以对这些单色图分别进行编码。如果只用亮度信号而不采用色度信号,则表示的图像就是没有颜色的灰度图像。,11,9.1.3,像素的位深,位深又称像素深度或颜色深度,它用来度量在图像中有多少颜色信息用来显示或打印像素。较大的位深(每像素信息的位数更多)意味着数字图像具有更多的可用颜色和更精确的颜色表示。,彩色图像中,在,R,、,G,、,B,三个颜色通道中,如果每一种颜色通道占用了,8,位,即有,256,种颜色,三个通道就包含了,256,的,3,次方的颜色,即,1677,万种颜色。一般的彩色图像需要,24,位颜色来表现,称为,“,真彩色,”,。实际应用中,也可以使用更低的色位,如,256,色(三色共占,8,位)或,16,位色。,12,9.1.3,像素的位深,灰度颜色模型采用,8,位来表示一个像素,即将纯黑和纯白之间的层次等分为,256,级,就形成了,256,级灰度模式,它可以用来模拟黑白照片的图像效果。,黑白颜色模型只采用,1,位来表示一个像素,只能显示黑色和白色。黑白模式无法表示层次复杂的图像,但可以制作黑白线条图。,13,14,9,.,2,Python,图像处理类库,PIL,9.2.1 PIL,模块基本介绍,15,模块名称,功能,Image,提供了一个相同名称的类,即,image,类,用于表示,PIL,图像。这个模块提供了常用的图像处理函数,包括从文件中加载图像和创建新的图像等,ImageChops,ImageChops,模块包含一些算术图形操作,叫做,channel operations,(,“,chops”,)。这些操作可用于图像特效、图像组合、,算法,绘图等等,ImageCrackCode,ImageCrackCode,模块允许用户检测和测量图像的各种特性,ImageDraw,ImageDraw,模块为,image,对象提供了基本的图形处理功能。例如创建新图像、注释或润饰已存在图像,为,Web,应用实时产生各种图形,ImageEnhance,ImageEnhance,模块包括一些用于图像增强的类。它们分别为,Color,类、,Brightness,类、,Contrast,类和,Sharpness,类,ImageFile,ImageFile,模块提供图像打开、保存等功能。另外,它还提供了一个,Parser,类,可以一块块地对一张图像进行解码(例如,网络中接收一张图像),ImageFileIO,ImageFileIO,模块用于从一个,socket,或者其他流设备中读取一张图像,9.2.1 PIL,模块基本介绍,16,模块名称,功能,ImageFilter,ImageFilter,模块包括各种滤波器的预定义集合,与,Image,类的,filter,方法一起使用,ImageFont,ImageFont,模块定义了一个同名的类,即,ImageFont,类。这个类的实例中存储着,bitmap,字体,需要与,ImageDraw,类的,text,方法一起使用,ImageGrab,ImageGrab,模块用于将屏幕上的内容拷贝到一个,PIL,图像内存中,ImageOps,ImageOps,模块包括一些,“,ready-made”,图像处理操作。它可以完成直方图均衡、裁剪、量化、镜像等操作,ImagePath,ImagePath,模块用于存储和操作二维向量数据。,Path,对象将被传递到,ImageDraw,模块的方法中,ImageSequence,ImageSequence,模块包括一个,wrapper,类,它为图像序列中每一帧提供了迭代器,ImageStat,ImageStat,模块计算一张图像或者一张图像的一个区域的全局统计值,PSDraw,PSDraw,模块为,Postscript,打印机提供基本的打印支持。用户可以通过这个模块打印字体、图形和图像,9.2.2 Image,模块,17,属性,功能,format,返回源文件的文件格式。如果是由,PIL,创建的图像,则其文件格式为,None,。,mode,返回图像的模式。该属性典型的取值为,“,1”,,,“,L”,,,“,RGB”,或,“,CMYK”,。,size,返回图像的尺寸,按照像素数计算。它的返回值为宽度和高度的二元组(,width,height,)。,palette,返回颜色调色板。如果图像的模式是,“,P”,,则返回,ImagePalette,类的实例;否则,将为,None,。,info,返回存储图像相关数据的字典。该字典传递从文件中读取的各种非图像信息。,9.2.2 Image,模块,18,函数及方法,功能,new(mode,size,color=0),创建一个新对象,,mode,为单通道时,,color,为一个整数或浮点数,open(fp),打开并确认给定的图像文件。,fp,可以是文件名,也可是,file object,,但是必须是以,r,模式打开的。最后返回一个,Image,对象,save(),保存图像,blend(im1,im2,alpha),返回一个融合后的,Image,,,out=im1*(1-alpha)+im2*alpha,composite(im1,im2,mask),使用给定的两张图像及,mask,图像作为透明度,插值出一张新的图像。新图像由透明遮罩,mask,和原始,im1,,,im2,决定,,mask,模式为,1,,,L,或,RGBA,eval(im,func),func,为接受一个整数参数的函数,将,im,的每个像素值分别传给,func,处理并返回最后的,Image,对象,merge(mode,bands),融合多个通道图像,convert(mode),转换模式,如,L,,,RGB,copy(),图像拷贝,crop(box),复制一部分图像,,box,为一个元组,定义矩形的左上角和右下角,9.2.2 Image,模块,19,函数及方法,功能,getpixel(x,y),返回,(x,y),处的像素值,histogram(),返回直方图统计数据,resize(size,resample=0),调整图像大小,rotate(degrees,resample=0,expand=0),逆时针旋转某一度数,,resample,有三个选项,默认第一个;,expand,默认为,0,save(fp,format=None),保存图像,show(title=None),调试时常用来显示图像,split(),分离通道,返回分离后的通道元组,transpose(method),旋转图像,,method,有:,Image.FLIP_LEFT_RIGHT,左右颠倒;,Image.FLIP_TOP_BOTTOM,上下颠倒;,Image.ROTATE_90,逆时针旋转,90,度;,Image.ROTATE_180,逆时针旋转,180,度;,Image.ROTATE_270,逆时针旋转,270,度;,Image.TRANSPOSE,上下左右颠倒,9.2.2 Image,模块,20,PIL,中有九种不同模式。分别为,1,,,L,,,P,,,RGB,,,RGBA,,,CMYK,,,YCbCr,,,I,,,F,。,模式,“1”,为二值图像,非黑即白。但是它每个像素用,8,个,bit,表示,,0,表示黑,,255,表示白。,模式,L”,为灰色图像,它的每个像素用,8,个,bit,表示,,0,表示黑,,255,表示白,其他数字表示不同的灰度。,模式,“P”,为,8,位彩色图像,它的每个像素用,8,个,bit,表示,其对应的彩色值是按照调色板查询出来的。,模式,“RGBA”,为,32,位彩色图像,它的每个像素用,32,个,bit,表示,其中,24bit,表示红色、绿色和蓝色三个通道,另外,8bit,表示,alpha,通道,即透明通道。,模式,“CMYK”,为,32,位彩色图像,它的每个像素用,32,个,bit,表示。,模式,“YCbCr”,为,24,位彩色图像,它的每个像素用,24,个,bit,表示。其中,Y,指亮度分量,,Cb,指蓝色色度分量,而,Cr,指红色色度分量。,模式,“I”,为,32,位整型灰色图像,它的每个像素用,32,个,bit,表示,,0,表示黑,,255,表示白,,(0,255),之间的数字表示不同的灰度。,模式,“I”,与模式,“L”,的结果完全一样,只是模式,“L”,的像素是,8bit,,而模式,“I”,的像素是,32bit,。,模式,“F”,为,32,位浮点灰色图像,它的每个像素用,32,个,bit,表示,,0,表示黑,,255,表示白,,(0,255),之间的数字表示不同的灰度。,9.2.3 PIL,滤镜效果,21,PIL,的,ImageFilter,模块提供了滤波器相关定义,主要用于,filter(),方法。当前的,ImageFilter,模块支持十种滤波器:,BLUR,:,ImageFilter.BLUR,为模糊滤波,处理之后的图像会整体变得模糊。,CONTOUR,:,ImageFilter.CONTOUR,为轮廓滤波,将图像中的轮廓信息全部提取出来。,DETAIL,:,ImageFilter.DETAIL,为细节增强滤波,会使得图像中细节更加明显。,EDGE_ENHANCE,:,ImageFilter.EDGE_ENHANCE,为边缘增强滤波,突出、加强和改善图像中不同灰度区域之间的边界和轮廓的图像增强方法。经处理使得边界和边缘在图像上表现为图像灰度的突变,用以提高人眼识别能力。,9.2.3 PIL,滤镜效果,22,EDGE_ENHANCE_MORE,:,ImageFilter.EDGE_ENHANCE_MORE,为深度边缘增强滤波,会使得图像中边缘部分更加明显。,EMBOSS,:,ImageFilter.EMBOSS,为浮雕滤波,会使图像呈现出浮雕效果。,FIND_EDGES,:,ImageFilter.FIND_EDGES,为寻找边缘信息的滤波,会找出图像中的边缘信息。,SMOOTH,:,ImageFilter.SMOOTH,为平滑滤波,突出图像的宽大区域、低频成分、主干部分或抑制图像噪声和干扰高频成分,使图像亮度平缓渐变,减小突变梯度,改善图像质量。,SMOOTH_MORE,:,ImageFilter.SMOOTH_MORE,为深度平滑滤波,会使得图像变得更加平滑。,SHARPEN,:,ImageFilter.SHARPEN,为锐化滤波,补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。,23,9.3 Python,中使用,OpenCV,9.3.1 OpenCV,安装,24,OpenCV,绑定,Python,时依赖于,NumPy,库,,NumPy,提供了数值计算函数,包括高效的矩阵计算函数,图像在,OpenCV,中是矩阵的形式,也就是,NumPy,中的数组。因此需要首先安装,NumPy,,否则即使找到了,cv,模块也不能运行。,1,安装,NumPy,D:pip install numpy-1.13.0-cp34-none-win32.whl“,2,安装,OpenCV,D:pip install opencv_python-3.2.0.7-cp34-none-win32.whl,OpenCV,目前支持读取,bmp,、,jpg,、,png,、,tiff,等常用格式,9.3.2 OpenCV,基本操作,25,1.,读取并显示图像,读取图像使用,imread(),函数,该函数共两个参数,第一个参数为要读入的图片文件名,第二个参数为如何读取图片,包括,cv2.IMREAD_COLOR,:读入一副彩色图片;,cv2.IMREAD_GRAYSCALE,:以灰度模式读入图片;,cv2.IMREAD_UNCHANGED,:读入一幅图片,并包括其,alpha,通道。例如:,显示图像使用,imshow(),函数,该函数共两个参数,第一个参数表示窗口名字,可以创建多个窗口中,但是每个窗口不能重名;第二个参数是读入的图片。,9.3.2 OpenCV,基本操作,26,2.,创建、复制图像,新的,OpenCV,的接口中没有,CreateImage,接口。即没有,cv2.CreateImage,这样的函数。如果要创建图像,需要使用,numpy,的函数。例如:,emptyImage=np.zeros(img.shape,np.uint8),复制图像可以使用,OpenCV,的,copy(),函数,例如:,emptyImage2=img.copy(),3.,保存图像,保存图像可以使用,OpenCV,的,imwrite(),函数。例如:,cv2.imwrite(D:img1.jpg,img),9.3.2 OpenCV,基本操作,27,4,操作像素,一张图像是一个由数值组成的矩阵,矩阵中的每一个元素代表一个像素。对于灰度图像来说,像素由,8,位无符号数表示,其中,0,代表黑色,,255,代表白色。对于彩色图像而言,每个像素需要三个这样的无符号数来表示颜色的三个通道(红、绿、蓝)。在这种情况下,矩阵的元素是一个三元组。,9.3.2 OpenCV,基本操作,28,5.OpenCV,分离、合并通道,彩色图像是由三原色组成的,为了更好的了解图像的组成,可以使用,OpenCV,将三原色分离开来,代码如下:,#-*-coding:utf-8-*-,import cv2,import numpy as np,img=cv2.imread(H:/lena.jpg),b,g,r=cv2.split(img),cv2.imshow(Blue,b),cv2.imshow(Red,r),cv2.imshow(Green,g),cv2.waitKey(0),cv2.destroyAllWindows(),9.3.2 OpenCV,基本操作,29,5.OpenCV,分离、合并通道,9.3.2 OpenCV,基本操作,30,6.OpenCV,计算并显示直方图,一个图像是由不同颜色值的像素组成的。像素值在图像中的分布情况是这幅图像的一个重要特征。可以用直方图来修改图像的外观,也可以用于描述图像的内容,并检测图像中特定的对象或纹理。,什么是直方图,图像是由像素组成的,在单通道的灰度图像中,每个像素的值介于,0,(黑色),255,(白色)之间。直方图是一个简单的表,它给出了一幅图像或一组图像中拥有给定数值的像素数量。因此,灰度图像的直方图有,254,个条目(或称为容器)。,0,号条目给出值为,0,的像素个数,,1,号条目给出值为,1,的像素个数,,2,号条目给出值为,2,的像素个数,如果你对直方图的所有项求和,就会得到像素的总数。直方图也可以被归一化,归一化后的所有项之和等于,1,。这种情况下,每一项给出的都是拥有特定数值的像素在图像中占的比例。,9.3.2 OpenCV,基本操作,31,def getHistogramImage1D(image,color=0):,hist=cv2.calcHist(image,0,#,使用的通道,None,#,没有使用,mask,256,#HistSize,0.0,255.0)#,直方图柱的范围,minVal,maxVal,minLoc,maxLoc=cv2.minMaxLoc(hist),histImage=np.ones(256,256,np.uint8)*255,#,设置最高点为,90%,hpt=int(0.9*256),#,每个条目都绘制一条垂线,for k in range(256):,intensity=int(histk*hpt/maxVal),#,两点间绘制一条直线,cv2.line(histImage,(k,256),(k,256-intensity),color),return histImage,img=cv2.imread(H:/lena.jpg,0),cv2.imshow(hist,getHistogramImage1D(img),cv2.waitKey(0),cv2.destroyAllWindows(),9.3.2 OpenCV,基本操作,32,9.3.2 OpenCV,基本操作,33,def getHistogramImage1D(image,color=0):,hist=cv2.calcHist(image,0,#,使用的通道,None,#,没有使用,mask,256,#HistSize,0.0,255.0)#,直方图柱的范围,minVal,maxVal,minLoc,maxLoc=cv2.minMaxLoc(hist),histImage=np.ones(256,256,np.uint8)*255,#,设置最高点为,90%,hpt=int(0.9*256),#,每个条目都绘制一条垂线,for k in range(256):,intensity=int(histk*hpt/maxVal),#,两点间绘制一条直线,cv2.line(histImage,(k,256),(k,256-intensity),color),return histImage,img=cv2.imread(H:/lena.jpg,0),cv2.imshow(hist,getHistogramImage1D(img),cv2.waitKey(0),cv2.destroyAllWindows(),目前,Python,还没有视频处理库。,Python,处理视频的接口较好的是,OpenCV,。,1.,视频输入,OpenCV,能够很好地支持视频的输入。读取视频可以使用,OpenCV,的,VideoCapture(),函数。,9.3.3,处理视频序列,34,import cv2,#setup video capture,cap=cv2.VideoCapture(0)#,读取摄像头,while True:,ret,im=cap.read(),cv2.imshow(video test,im),key=cv2.waitKey(10),if key=27:,break,if key=ord():,cv2.imwrite(vid_result.jpg,im)#,将当前帧保存起来,2.,读取视频到,NumPy,数组,OpenCV,可以从一个文件中读取视频帧序列,并将其转换成,NumPy,数组。例如,9.3.3,处理视频序列,35,import cv2,from pylab import*,#setup video capture,cap=cv2.VideoCapture(0),frames=,while True:,ret,im=cap.read(),cv2.imshow(video,im),frames.append(im)#,保存到数组,if cv2.waitKey(10)=27:,break,frames=array(frames),#,显示帧数和大小,print im.shape,print frames.shape,36,9.4 Matplotlib,绘图库,9.4.1 Matplotlib,安装,根据自己的系统选择,32,位和,64,位的,binary wheels,包,在控制台中转到对应目录,执行以下操作进行安装:,D:pip install *.whl,或者直接在控制台中输入:,D:pip install matplotlib,9.4.1 Matplotlib,安装,37,Matplotlib,拥有许多的模块,其中与绘图关系最直接的是,“pyplot”,绘图,API,。可以用下面的命令装载并查看它提供的函数:,import matplotlib.pyplot as plt,dir(plt),如果要了解模块中某个函数的使用方法,可以使用,help,命令查看:,help(plt.plot),Matplotlib,与数据处理最直接的是,pylab,模块,包含了,numpy,pyplot,中最常用的函数。可以用下面的命令装置并查看它提供的函数:,from matplotlib import pylab,dir(pylab),9.4.2 Matplotlib,模块,38,1,画线,画直线可以使用,Matplotlib,的,.plot(),函数,该函数的格式为:,plt.plot(x,y,format_string,*kwargs),x,,,y,为,x,轴和,y,轴的数据,可为列表或数组;,format_string,为控制曲线的格式字符串,,*kwargs,为第二组或更多的,(x,y,format_string),。例如:,9.4.3 Matplotlib,绘制简单图形,39,import matplotlib.pyplot as plt,plt.plot(1,2,3,4),plt.ylabel(some numbers),plt.show(),【例,9-14,】利用,Matplotlib,绘制正弦曲线。代码如下,9.4.3 Matplotlib,绘制简单图形,40,import matplotlib.pyplot as plt#,导入,matplotlib,模块,import numpy as np#,导入,numpy,模块,import math,x_values=np.arange(0.0,math.pi*4,0.01)#,生成,x,的值,y_values=np.sin(x_values)#,生成,y,的值,plt.plot(x_values,y_values,linewidth=1.0)#,绘图,线宽,1.0,plt.xlabel(x)#x,轴标签,plt.ylabel(sin(x)#y,轴标签,plt.title(Simple plot)#,标题,plt.grid(True)#,显示网格,plt.savefig(sin.png)#,保存绘图,plt.show()#,显示绘图,2.,直方图,直方图是用来统计离散数据分布,它把整个数据集,根据取值范围,分成若干类,称为,bins,,然后统计中每个,bin,中的数据个数。,hist,默认是分为,10,类,即,bins=10,,下面代码就是把取值,-4,4,上的,1000,个随机数,分成,10,个,bins,,统计每个的数据个数,可以看出这个随机函数是典型的正态分布。,9.4.3 Matplotlib,绘制简单图形,41,import matplotlib.pyplot as plt,y=np.random.randn(1000),plt.hist(y),plt.show(),【例,9-15,】绘制饼图。代码如下:,9.4.3 Matplotlib,绘制简单图形,42,#coding=UTF8,from matplotlib import pyplot as plt,plt.rcParamsfont.sans-serif=SimHei,#,指定默认字体,#,解决保存图像是负号,-,显示为方块的问题,plt.rcParamsaxes.unicode_minus=False,plt.figure(figsize=(6,9)#,设置图形大小,宽,高,#,定义饼状图的标签,标签是列表,labels=u,优秀,u,优良,u,合格,data=20,70,10#,定义显示数据,colors=red,yellowgreen,lightskyblue#,定义颜色,#,将第一块分割出来,数值的大小是分割出来的与其他两块的,间隙,【例,9-15,】绘制饼图。代码如下:,9.4.3 Matplotlib,绘制简单图形,43,#,将第一块分割出来,数值的大小是分割出来的与其他两块的间隙,explode=(0.1,0,0),patches,l_text,p_text=plt.pie(data,explode=explode,labels=labels,colors=colors,labeldistance=1.1,autopct=%3.1f%,shadow=False,startangle=90,pctdistance=0.6),#,改变文本的大小,#,方法是把每一个,text,遍历。调用,set_size,方法设置它的属性,for t in l_text:,t.set_size=(50),for t in p_text:,t.set_size=(50),#,设置,x,,,y,轴刻度一致,这样饼图才能是圆的,plt.axis(equal),plt.legend(),plt.show,(),散点图用来描述两个变量之间的关系,比如在进行数据拟合之前,看看变量间是线性还是非线性。绘制散点图可以使用,plt.scatter(x,y),函数来绘制,该函数的格式为:,plt.scatter(x,y),x,,,y,为,x,轴和,y,轴的数据。,9.4.3 Matplotlib,绘制简单图形,44,x=np.random.randn(1000),y=np.random.randn(1000),plt.scatter(x,y),plt.show(),45,9.5,编程实践,【,9-16,】编写一个简单的图像处理系统,实现图像的打开、另存、缩放、旋转、图像增强等功能。利用,PyQt,建立如图,9-24,所示的界面。,9.4.3 Matplotlib,绘制简单图形,46,编程的步骤如下:,(1),首先利用,PyQt Designer,进行界面设计,并将,.ui,文件转换成,.py,文件;,(2),在形成的,.py,文件中增加第,11-15,行代码;增加,87-91,行代码;,(3),编写相关的函数;,(4),按,21-26,行的形式,将,QT,控件的相应的信号和槽(,Python,的函数)连接起来。,9.4.3 Matplotlib,绘制简单图形,47,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服