Python PIL图像处理:类型、通道与matplotlib应用
5星 · 超过95%的资源 56 浏览量
更新于2024-08-31
收藏 91KB PDF 举报
Python PIL图像处理是一篇介绍如何使用Python的Pillow库进行图像处理的文章。Pillow是基于Python Imaging Library (PIL) 的更新版本,PIL主要支持光栅图片,即由像素数据构成的位图文件。PIL的特点是可以处理多种类型的图片,包括常见的JPEG、PNG、BMP等,且它采取左上角为原点(0,0)的坐标系统。
文章首先指出,使用`Image`模块从PIL读取图片会得到PIL类型的图像对象,其大小表示为宽度和高度,例如`Img.read()`的结果形状为(width, height)。另一方面,`skimage.io.imread()`函数则返回numpy数组,其形状为(height, width, channel),这是因为skimage通常处理的数据格式是通道、高度和宽度的顺序,这与Caffe等深度学习框架的要求相匹配,Caffe期望的图片数据格式是(channel, height, width)。因此,在使用Caffe时,可能需要通过`transformer.set_transpose('data', (2, 0, 1))`这样的操作来调整数据格式。
获取图片像素值的方式也有所不同:`Img.getpixel((w, h))`直接返回指定位置(w, h)的三个通道值,而对于skimage读取的图片,需要通过索引,如`img_file2[0][0]`,但要注意理解其通道顺序。然而,`img_file2`实际上代表的是numpy数组,而非直观的(channel, height, width)形式。
文章还提到了在PIL中查看图片信息的方法,可以使用Pillow提供的功能,尽管PIL不再活跃更新,但Pillow继承了其大部分功能。对于数字图片处理,Pillow提供了丰富的接口来操作像素数据和图像属性。
此外,文中提到了两种显示图片的方式:一是使用操作系统内置的图片浏览器,通过`Image.show()`实现;二是使用matplotlib库进行专业级的图片绘制,这涉及到创建`Figure`对象,设置标题、子图(subplot)等,matplotlib可以提供更多的图形定制选项,尽管稍微复杂,但推荐这种方式以获得更大的灵活性和控制权。默认情况下,matplotlib会显示轴,如果不需要,可以通过相应参数关闭。
这篇文章涵盖了PIL库的基本图像操作,包括图片类型、通道处理、坐标系统、图片读取与显示,以及如何使用matplotlib进行高级图像展示和处理。对于任何需要在Python中进行图像操作的开发者来说,这些都是重要的基础知识。
2023-07-23 上传
2021-10-02 上传
2021-08-09 上传
2023-08-14 上传
2024-10-30 上传
2024-10-30 上传
2023-05-24 上传
2023-06-07 上传
2023-05-20 上传
weixin_38737521
- 粉丝: 5
- 资源: 908
最新资源
- 老师愿您开心每一天flash动画
- Globalize your Delphi applications without troubles
- ChickenVR-launcher:[已弃用] Chicken VR的启动器
- card-animation:简单的卡片动画
- bio331_2021:2021年生物信息学的注释和代码
- 投诉人:Accuser是一个轻量级的框架包装程序,可让您编写Github机器人来监视“拉取”请求并将人员分配给PR
- mkb:合作知识提炼嵌入知识库
- my-personal-site.io
- com_helloworld:创建组件是为了了解创建Joomla组件的过程
- Talent Eye Beta-crx插件
- vdrift:VDrift源代码
- addupstream:一个小的cli,可自动将上游遥控器添加到git项目中
- JSON2.jl:使用Julia类型快速进行JSON编组
- 毕业设计&课设-该项目旨在使移动机械手youBot从初始配置中拾取立方体并将其运输到所需的位置….zip
- Outils de productivité Rakuten-crx插件
- terrafirma:用于Terraform计划的静态分析工具