2022年Python图像处理库Pillow入门 .pdf

上传人:Che****ry 文档编号:34879577 上传时间:2022-08-19 格式:PDF 页数:9 大小:93.13KB
返回 下载 相关 举报
2022年Python图像处理库Pillow入门 .pdf_第1页
第1页 / 共9页
2022年Python图像处理库Pillow入门 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年Python图像处理库Pillow入门 .pdf》由会员分享,可在线阅读,更多相关《2022年Python图像处理库Pillow入门 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Python图像处理库Pillow入门(含代码)Pillow 是 Python里的图像处理库(PIL : PythonImage Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。1)使用 Image类PIL 最重要的类是Image class, 你可以通过多种方法创建这个类的实例;你可以从文件加载图像,或者处理其他图像,或者从 scratch创建。要从文件加载图像,可以使用open( ) 函数,在 Image 模块中:fromPIL importImageim = Image .open (E:/photoshop

2、/1.jpg)加载成功后,将返回一个Image 对象,可以通过使用示例属性查看文件内容:print (im .format , im .size , im .mode )(JPEG, (600 , 351 ), RGB )format这个属性标识了图像来源。 如果图像不是从文件读取它的值就是None 。size 属性是一个二元 tuple,包含 width和 height (宽度和高度,单位都是 px ) 。mode属性定义了图像 bands 的数量和名称,以及像素类型和深度。常见的modes有 “ L”(luminance)表示灰度图像, “ RGB” 表示真彩色图像, and“ CMYK”

3、 表示出版图像。如果文件打开错误,返回IOError错误。只要你有了Image类的实例, 你就可以通过类的方法处理图像。比如,下列方法可以显示图像:im.show()名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 2)读写图像PIL 模块支持大量图片格式。 使用在 Image模块的 open()函数从磁盘读取文件。你不需要知道文件格式就能打开它,这个库能够根据文件内容自动确定文件格式。要保存文件,使用Image类的 save()

4、 方法。保存文件的时候文件名变得重要了。除非你指定格式,否则这个库将会以文件名的扩展名作为格式保存。加载文件,并转化为png 格式:PythonImage Library Testfrom PIL importImageimportosimportsysfor infilein sys.argv 1:f,e = os.path .splitext (infile )outfile= f +.pngif infile!= outfile :try :Image .open (infile ).save (outfile )exceptIOError :print (Cannotconvert,

5、infile )save() 方法的第二个参数可以指定文件格式。3)创建缩略图缩略图是网络开发或图像软件预览常用的一种基本技术,使用 Python 的 Pillow图像库可以很方便的建立缩略图,如下:# create thumbnailsize = (128 ,128 )for infilein glob .glob (E:/photoshop/*.jpg):f, ext = os.path .splitext (infile )img = Image .open (infile )img .thumbnail(size,Image .ANTIALIAS )名师资料总结 - - -精品资料欢迎

6、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - img .save (f+ .thumbnail,JPEG )上段代码对 photoshop下的 jpg 图像文件全部创建缩略图,并保存,glob模块是一种智能化的文件名匹配技术,在批图像处理中经常会用到。注意:Pillow 库不会直接解码或者加载图像栅格数据。当你打开一个文件,只会读取文件头信息用来确定格式,颜色模式, 大小等等, 文件的剩余部分不会主动处理。这意味着打开一个图像文件的操作十分快速,跟图片大小和压缩

7、方式无关。4)图像的剪切、粘贴与合并操作Image类包含的方法允许你操作图像部分选区,PIL.Image.Image.crop方法获取图像的一个子矩形选区,如:# crop, paste and mergeim = Image .open (E:/photoshop/lena.jpg)box = (100 ,100 ,300 ,300 )region= im .crop (box )矩形选区有一个 4 元元组定义,分别表示左、上、右、下的坐标。这个库以左上角为坐标原点,单位是px ,所以上诉代码复制了一个200 200 pixels的矩形选区。这个选区现在可以被处理并且粘贴到原图。region

8、= region .transpose (Image .ROTATE_180 )im .paste (region , box )当你粘贴矩形选区的时候必须保证尺寸一致。此外,矩形选区不能在图像外。 然而你不必保证矩形选区和原图的颜色模式一致,因为矩形选区会被自动转换颜色。5)分离和合并颜色通道对于多通道图像, 有时候在处理时希望能够分别对每个通道处理,处理完成后重新合成多通道,在Pillow 中,很简单,如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 -

9、- - - - - - - - r,g,b = im .split ()im = Image .merge (RGB , (r,g,b)对于 split( )函数,如果是单通道的,则返回其本身,否则,返回各个通道。6)几何变换对图像进行几何变换是一种基本处理,在Pillow 中包括 resize( ) 和rotate() ,如用法如下:out = im .resize (128 ,128 )out = im .rotate (45) # degreeconter-clockwise其中,resize( ) 函数的参数是一个新图像大小的元祖,而rotate( ) 则需要输入顺时针的旋转角度。在P

10、illow 中,对于一些常见的旋转作了专门的定义:out = im .transpose (Image .FLIP_LEFT_RIGHT )out = im .transpose (Image .FLIP_TOP_BOTTOM )out = im .transpose (Image .ROTATE_90 )out = im .transpose (Image .ROTATE_180 )out = im .transpose (Image .ROTATE_270 )7)颜色空间变换在处理图像时,根据需要进行颜色空间的转换,如将彩色转换为灰度:cmyk = im .convert (CMYK )g

11、ray = im .convert (L )8)图像滤波图像滤波在 ImageFilter模块中,在该模块中,预先定义了很多增强滤波器,可以通过 filter() 函数使用,预定义滤波器包括:BLUR、 CONTOUR 、 DETAIL 、 EDGE_ENHANCE、 EDGE_ENHANCE_MORE 、EMBOSS、 FIND_EDGES 、 SMOOTH 、 SMOOTH_MORE 、 SHARPEN。其中BLUR 就是均值滤波,CONTOUR找轮廓,FIND_EDGES 边缘检测,使用该模块时,需先导入,使用方法如下:from PIL importImageFilter名师资料总结 -

12、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - imgF = Image .open (E:/photoshop/lena.jpg)outF = imgF .filter (ImageFilter.DETAIL )conF = imgF .filter (ImageFilter.CONTOUR )edgeF = imgF .filter (ImageFilter.FIND_EDGES )imgF .show ()outF .show ()con

13、F .show ()edgeF .show ()除此以外,ImageFilter 模块还包括一些扩展性强的滤波器:class PIL.ImageFilter.GaussianBlur(radius=2)Gaussian blur filter.参数radiusBlur radius.class PIL.ImageFilter.UnsharpMask(radius=2,percent=150,threshold=3)Unsharpmask filter.See Wikipediasentry on digitalunsharpmaskingfor an explanationofthe para

14、meters.class PIL.ImageFilter.Kernel(size,kernel,scale=None,offset=0)Create a convolutionkernel. The currentversion only supports33and 55integerand floatingpointkernels.In the currentversion, kernels can only be appliedto“ L” and “ RGB”images.参数:size Kernel size, given as (width,height).In the curren

15、tversion, thismust be (3,3) or (5,5).名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - kernelA sequencecontainingkernel weights.scale Scale factor. If given, the result for each pixel is dividedby thisvalue. the defaultis the sum of the kerne

16、l weights.offsetOffset. If given, this value is added to the result, after it has beendividedby the scale factor.class PIL.ImageFilter.RankFilter(size,rank)Create a rank filter. The rank filter sorts all pixels in a windowof the givensize, and returnstherank th value.参数:size The kernelsize, in pixel

17、s.rankWhat pixel value to pick. Use 0 for a min filter, size * size / 2 for amedianfilter, size * size - 1 for a max filter, etc.class PIL.ImageFilter.MedianFilter(size=3)Create a medianfilter. Picks the medianpixel value in a windowwith thegiven size.参数:size The kernelsize, in pixels.class PIL.Imag

18、eFilter.MinFilter(size=3)Create a min filter. Picks the lowestpixel value in a windowwith thegiven size.参数:size The kernelsize, in pixels.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - class PIL.ImageFilter.MaxFilter(size=3)Create a max fi

19、lter. Picks the largestpixel value in a windowwith thegiven size.参数:size The kernelsize, in pixels.class PIL.ImageFilter.ModeFilter(size=3)Create a mode filter. Picks the most frequentpixel value in a box with thegiven size. Pixel values that occur only once or twice are ignored;if nopixel value occ

20、urs more than twice, the originalpixel value is preserved.参数:size The kernelsize, in pixels.更多详细内容可以参考:PIL/ImageFilter9)图像增强图像增强也是图像预处理中的一个基本技术,Pillow中的图像增强函数主要在ImageEnhance模块下,通过该模块可以调节图像的颜色、对比度和饱和度和锐化等:from PIL importImageEnhanceimgE = Image .open (E:/photoshop/lena.jpg)imgEH= ImageEnhance.Contras

21、t (imgE )imgEH .enhance (1.3 ).show (30% morecontrast)图像增强:class PIL.ImageEnhance.Color(image)Adjustimage color balance.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - This class can be used to adjust the colourbalance of an image, in amann

22、ersimilarto the controlson a colourTV set. An enhancementfactor of 0.0 gives a black and white image. A factorof 1.0 gives theoriginalimage.class PIL.ImageEnhance.Contrast(image)Adjustimage contrast.This class can be used to controlthe contrastof an image, similarto thecontrastcontrolon a TV set. An

23、 enhancementfactorof 0.0 gives a solidgrey image. A factorof 1.0 gives the originalimage.class PIL.ImageEnhance.Brightness(image)Adjustimage brightness.This class can be used to controlthe brighntessof an image. Anenhancementfactorof 0.0 gives a black image. A factorof 1.0 gives theoriginalimage.cla

24、ss PIL.ImageEnhance.Sharpness(image)Adjustimage sharpness.This class can be used to adjust the sharpness of an image. Anenhancementfactor of 0.0 gives a blurredimage, a factor of 1.0 gives theoriginalimage, and a factorof 2.0 gives a sharpenedimage.图像增强的详细内容可以参考:PIL/ImageEnhance除了以上介绍的内容外,Pillow还有很多

25、强大的功能:PIL.Image.alpha_composite(im1,im2)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - PIL.Image.blend(im1,im2, alpha)PIL.Iposite(image1,image2,mask)PIL.Image.eval(image,*args)PIL.Image.fromarray(obj,mode=None)PIL.Image.frombuffer(mode,size, data, decoder_name= raw ,*args)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁