python图像处理---python的图像处理模块Image
https://blog.csdn.net/jiaoyangwm/article/details/79293272
【python图像处理】python的图像处理模块Image
版本信息:2.7.11
环境:windows 7 64位系统
编辑器:PyCharm
运行工具:PyCharm
文件地址:D:\phpStudy\WWW\python\Image
一、引入图像模块
二、读取与存储操作
1. PIL 的 open() 函数用于创建 PIL 图像对象,比如读取一张图片:
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
注意:在该路径下必须有qq_image.jpg图片,否则会出错
2. 存储图片:
save() 方法用于保存图像到具有指定文件名的文件。通过 save() 方法,PIL 可以将图像保存成多种格式的文件,PIL 是个足够智能的类库,可以根据文件扩展名来判定图像的格式。比如:img.save('qq_image_thumb.jpg', 'JPEG'),PIL 函数会进行简单的检查,如果文件不是 JPEG 格式,会自动将其转换成 JPEG 格式;如果转换失败,它会在控制台输出一条报告失败的消息。
为了效果,生成缩略图并且保存为qq_image_thumb.jpg:
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 生成缩略图
img.thumbnail((128, 128))
# 保存图片
img.save('qq_image_thumb.jpg', 'JPEG')
运行后,进去文件目录:
三、图像的一些基本操作
1. 输出图片的信息(格式、尺寸以及图像类型)
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 输出图片的格式,尺寸以及图像类型
print img.format, img.size, img.mode
输出:JPEG (355, 346) RGB
2. 显示图片
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 显示图片
img.show()
在PyCharm下运行呢,会直接调用Windows照片查看器来显示图片
3. 生成缩略图
thumbnail() 方法接受一个元组参数(该参数指定生成缩略图的大小),然后将图像转换成符合元组参数指定大小的缩略图。
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 生成缩略图
img.thumbnail((128, 128))
# 显示图片
img.show()
这样运行之后就会显示128*128的图片
4. 旋转图片
要旋转一幅图像,可以使用逆时针方式表示旋转角度,然后调用 rotate() 方法:
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 逆时针旋转45度
rorate1 = img.rotate(45)
rorate1.show()
# 逆时针旋转90
rorate2 = img.transpose(Image.ROTATE_90)
rorate2.show()
运行后如图:
rorate1:
由于尺寸不变,旋转45度之后会填白
rorate2:
注意:只有选择90度,180度以及270度的时候才能用img.transpose(Image.ROTATE_90),其他角度用rotate
5. 翻转
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 左右对换
rorate3 = img.transpose(Image.FLIP_LEFT_RIGHT)
rorate3.show()
# 上下翻转
rorate4 = img.transpose(Image.FLIP_TOP_BOTTOM)
rorate4.show()
运行后:
rorate3:
rorate4:
6. 缩放图片
要调整一幅图像的尺寸,我们可以调用 resize() 方法。该方法的参数是一个元组,用来指定新图像的大小:
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 缩放图片为50*50
resize1 = img.resize((50, 50))
resize1.show()
7. 图片灰度化
图像的颜色转换可以使用 convert() 方法来实现。要读取一幅图像,并将其转换成灰度图像,只需要加上 convert('L'),如下:
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 图片转换为灰度
grey = img.convert('L')
grey.show()
运行后:
8. 某个像素点的色彩值的获取以及更改
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 获取某个像素位置的值
print img.getpixel((100, 100))
# 更改某个像素位置的值
img.putpixel((100, 100), (0, 0, 0))
9. 裁剪图片
使用 crop() 方法可以从一幅图像中裁剪指定区域:
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 裁剪图片 box为裁剪图片的区域范围
box = (100, 100, 250, 250)
region = img.crop(box)
region.show()
运行输出:
注意:Python规定左上角为(0, 0)的坐标点,box由一个4元组(左,上,右,下)定义,表示为坐标为: (left, upper, right, lower),最后的两个数字必须比前面两个要大。如图:
10. 粘贴图片
为了效果,裁剪该图片的一部分然后旋转,最后粘贴到指定区域:
# coding=utf-8
from PIL import Image
# 读取图片
img = Image.open('qq_image.jpg')
# 裁剪图片 box为裁剪图片的区域范围
box = (100, 100, 250, 250)
region = img.crop(box)
region.show()
# 逆时针旋转图片180度
region2 = region.transpose(Image.ROTATE_180)
region2.show()
# 图片的粘贴
img.paste(region2, box)
img.show()
运行:
总结:
如果需要更强大的图像处理操作的话,可以使用Matplotlib类库,它具有比PIL更强大的绘图功能,比如说可以绘制出强大的条形图、饼状图、散点图等。
python图像处理---python的图像处理模块Image相关推荐
- python图片-Python中的十大图像处理工具
原标题:Python中的十大图像处理工具 导读:本文主要介绍了一些简单易懂最常用的Python图像处理库. 作者:Parul Pandey 来源:大数据文摘(ID:BigDataDigest) 当今世 ...
- python进行基本的图像处理
转自 http://www.ituring.com.cn/tupubarticle/2024 第 1 章 基本的图像操作和处理 本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Py ...
- python图像处理《数字图像处理与python实现》读书笔记
文章目录 很重要! 第一章 基础知识 1.1 图像采样和量化 1.2 图像的表示和可视化 1.3 简单图像处理 参考 很重要! scikit-image的开发文档:https://scikit-ima ...
- python图像库_Python常用图像处理库整理
1. 库简介 深度学习领域,对视频图片样本的处理占了很大一部分比重. 而Python环境下的图像处理库种类较多,无论是精度,速度等方面都有不同的差异,这里予以总结. Python环境下,相关的包有: ...
- 《OpenCv视觉之眼》Python图像处理七 :Opencv图像处理之高通滤波和低通滤波原理及构造
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- 强化学习系列文章(二十三):AirSim Python API图像与图像处理
强化学习系列文章(二十三):AirSim Python API图像与图像处理 参考网址:https://microsoft.github.io/AirSim/image_apis/#segmentat ...
- Python中的类、模块和包究竟是什么?
Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...
- Python中爬虫框架或模块的区别
Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...
- Python炫技操作:模块重载的五种方法
作者 | 写代码的明哥 来源 | Python编程时光 环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ tree foofoo└── bar.py 0 directories ...
- python 多线程编程之_thread模块
python 多线程编程之_thread模块 参考书籍:python核心编程 _thread模块除了可以派生线程外,还提供了基本的同步数据结构,又称为锁对象(lock object,也叫原语锁.简单锁 ...
最新文章
- 牛逼了!一周内咸鱼疯转 3.6w 次,最终被所有大厂封杀!
- 安装了silverlight还是提示_win10系统安装.netframework3.5方法
- Customing 维护中TR弹出逻辑
- kubernetes+Azure DevOps实现.Net Core项目的自动化部署均衡负载
- 题目一:给出一个n,代表有从1到n的数字[1,2,3,··· n],问可以构成多少种二叉搜索树?...
- 25岁,一位女程序员的幸运几年
- 【python教程入门学习】检验Python安装成功的方法
- 目标检测(十)--SSD
- 软考网络工程师备考经验
- WPS打卡领会员活动题目及答案
- 《系统分析与设计》个人第二次作业
- 语法歧义现象(一):牛津逗号(Oxford Comma)
- HTML_canvas
- 2020电赛芯片介绍和题目估计(二):LMT70
- uni-app系列(二):uniapp 项目引入 uView 并简单使用
- 【以太网硬件十八】网卡是什么?
- 计算机模拟虚拟筛选操作流程
- xyCMS后台getshell
- A.c 和B.c两个c文件中使用了两个相同名字的static变量
- JAVA毕设项目网上拍卖系统(java+VUE+Mybatis+Maven+Mysql)