官方文档:http://effbot.org/imagingbook/image.htm

1.打开图像并显示(注意这样show的话,会生成本地文件的):


img=Image.open('1.jpg')img.show()

2.转8位灰度图


greyimg=img.convert('L')
greyimg.show()

3.获取图片某一像素点的 (R,G,B)值

from PIL import Image  imagepath='1.jpg'
img = Image.open(imagepath)
if img.mode not in ('L', 'RGB'):  img = img.convert('RGB')
r, g, b = img.getpixel((10, 10))  

4.从图像中随机截取一部分

crop() : 从图像中提取出某个矩形大小的图像。它接收一个四元素的元组作为参数,各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角。

leftupx=random.randint(0,img.size[0]-64-1)
leftupy= random.randint(0,img.size[1]-128-1)
img1=img.crop((leftupx,leftupy,leftupx+64,leftupy+128))

5.保存图像

im.save("2.jpg")

6.PIL中的Image和numpy中的数组array相互转换

image转换成array

img=np.array(image)

array转换成image

注意img必须强转成uint8类型!如果是uint16的矩阵而不转为uint8的话,Image.fromarray这句会报错

from PIL import Imageim_arr = Image.fromarray(np.uint8(img))

7.修改图像大小

im.resize(size, filter) ⇒ image

返回图像的调整大小的副本。size参数以像素为单位给出请求的大小,作为2元组:(宽、高)。

The filter argument can be one of NEAREST (use nearest neighbour), BILINEAR (linear interpolation in a 2x2 environment), BICUBIC (cubic spline interpolation in a 4x4 environment), or ANTIALIAS (a high-quality downsampling filter). If omitted, or if the image has mode “1” or “P”, it is set to NEAREST.

滤波器参数可以是最接近的(使用最近邻)、双线性(在2x2环境中进行线性插值)、双三次样条(在4x4环境中进行三次样条插值)或反锯齿(高质量的下采样滤波器)。如果省略,或者图像模式为“1”或“P”,则将其设置为最接近的模式。

Note that the bilinear and bicubic filters in the current version of PIL are not well-suited for large downsampling ratios (e.g. when creating thumbnails). You should use ANTIALIAS unless speed is much more important than quality.

请注意,当前版本的公益诉讼的双线性和双三次滤波器不适用于大的下采样率(例如,创建缩略图时)。除非速度比质量更重要,否则应该使用反锯齿。

(总之一般情况下第二个参数使用默认就好)

比如要将图片修改成64*64的
im = im.resize(64,64)

8.复制图片

im = Image.open('1.jpg')im2 = im.copy()

9.添加水印,叠加函数,拼接图像

基于keras中的PIL中的paste()函数可以给图片添加水印,也可以叠加函数,拼接图像,做到多张图片结果的可视化。

https://blog.csdn.net/s411081123/article/details/86255688

10.更多操作

https://www.cnblogs.com/meitian/p/3699223.html

部分内容选自:传送门

https://www.sohu.com/a/328328613_571478

【Python学习】 - PIL - 各种图像操作相关推荐

  1. python打开和关闭图片_使用python进行基本的图像操作与处理

    原标题:使用python进行基本的图像操作与处理 前言: 与早期计算机视觉领域多数程序都是由 C/C++ 写就的情形不同.随着计算机硬件速度越来越快,研究者在考虑选择实现算法语言的时候会更多地考虑编写 ...

  2. 【Python | opencv+PIL】常见操作(创建、添加帧、绘图、读取等)的效率对比及其优化

    一.背景 本人准备用python做图像和视频编辑的操作,却发现opencv和PIL的效率并不是很理想,并且同样的需求有多种不同的写法并有着不同的效率.见全网并无较完整的效率对比文档,遂决定自己丰衣足食 ...

  3. Python学习---Django的基础操作180116

    Django创建数据库操作 django流程之model实例 settigs.py:更改Django2.0.1的配置,更新为之前的路径配置 'DIRS': [os.path.join(BASE_DIR ...

  4. python学习笔记十-文件操作

    对文件操作流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 操作如下: 花间一壶酒,独酌无相亲. 举杯邀明月,对影成三人. 月既不解饮,影徒随我身. 暂伴月将 ...

  5. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  6. Python学习 Day 046 - DOM 操作 二

    主要内容: 1.DOM的操作(创建,追加,删除) 2.js中的面向对象 3.定时器 1. DOM的操作(创建,追加,删除) (1)DOM节点的获取 parentNode 获取父级标签 nextElem ...

  7. Python学习week7-文件路径操作

    1.os.path模块 # os.path常用方法 from os import path p=path.join('/etc','sysconfig','network') # 路径拼接 print ...

  8. python学习-文件的读写操作

    文章目录 文件的写操作 文件的读操作 文件的写操作 open函数,原型: def open(file, mode='r', buffering=None, encoding=None, errors= ...

  9. python学习之双目图像得到景深图(及遇到的问题)

    双目视觉测距主要是利用了目标点在左右两幅图像上成像的横向坐标存在的视差,视差与目标点到成像平面的距离Z存在着反比关系:Z=fT/d 首先下载一些先关的软件包(有就不用安装了): pip install ...

最新文章

  1. php如何操作文本框,php如何清除文本框
  2. zillow房价预测比赛_Zillow房价预测:2018年美国房价将会上涨
  3. JavaScript 工作原理之五-深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势(译)...
  4. java导出highcharts_java实现highcharts导出图片至excel
  5. 错误处理:RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be
  6. linux dd命令参数及用法详解---用指定大小的块拷贝一个文件
  7. Win7的市场份额终于超过XP了,以后可以逐渐考虑放弃ie6/7了!
  8. 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)
  9. 怎么看软件的编写代码
  10. 计算机教学的弊端,信息技术在教学中的利弊及解决对策
  11. Android MIDI音乐播放/生成相关总结
  12. ipa在线安装搭建_免电脑 iOS 12 一键越狱+手机端直接自动安装插件教程
  13. 从零到卓越:京东客服即时通讯系统的技术架构演进历程(转)
  14. 联想 计算机无线网络设置方法,联想笔记本无线网络开关,教您联想笔记本无线网络开关...
  15. 智能陈桥输入法软件测试,智能陈桥 for linux 版本发布
  16. 计算机体系结构 第一章 计算机系统结构的基础知识(2)
  17. 蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践读后感
  18. IT从业者的职业规划
  19. 2022年宜昌中级职称评审必须要有助理工程师吗?甘建二
  20. ISO 8601 格式是干什么的?底层原理是什么?

热门文章

  1. HDOJ 4253 Two Famous Companies 二分+MST
  2. 如何编程得到数据库信息
  3. 随手小记·080911
  4. Schrödinger's Knapsack ZOJ - 4019 线性DP
  5. python爬取百度贴吧中的所有邮箱_python写的百度贴吧邮箱采集(带界面)
  6. python提取网页中p标签中的内容_使用Python进行爬虫的初学者指南
  7. 数据流图怎么画_概率图模型怎么画?5个步骤完成专业模型图
  8. 手工机器人的做法大全用易拉罐_纯手工自制黄油,做法简单详细易操作,蛋糕、饼干、面包都能用...
  9. linux怎么安装git服务器,linux下安装git服务端
  10. c语言字符串未初始化strcat,C语言中字符串常用函数strcat与strcpy的用法介绍