from PIL import Image
from PIL import ImageFilter
from PIL import ImageEnhance
import matplotlib.pyplot as plt# 将彩色图片转成灰度图片
img = Image.open('pic.jpg') # 读取图片
gray = img.convert('L') # 转成灰度图
plt.figure('将彩色图片转成灰度图片')
plt.subplot(1,2,1)
plt.title("original image") # 设置标题
plt.imshow(img) # 显示原始图片
plt.axis('off') # 不显示坐标轴
plt.subplot(1,2,2)
plt.title('gray image') # 设置标题
plt.imshow(gray,cmap = 'gray')
plt.axis('off')
plt.show() # 显示图片框# 裁剪图像
img = Image.open('pic.jpg')  # 读取图片
plt.figure("裁剪图像")
plt.subplot(1,2,1)
plt.title('original image') # 设置标题
plt.imshow(img) # 显示原始图片
plt.axis('off') # 不显示坐标轴
img_size = img.size # 获取图像大小
start_x = int(img_size[0]/2)
end_x = img_size[0]
start_y = int(img_size[1]/2)
end_y = img_size[1]
box = (start_x,start_y,end_x,end_y) # 定义裁剪区间
roi = img.crop(box)     # 裁剪
plt.subplot(1,2,2)
plt.title('cropped image') # 设置标题
plt.imshow(roi) # 显示裁剪后的图片
plt.axis('off') # 不显示坐标轴
plt.show() # 显示图片框# 旋转图像
img = Image.open('pic.jpg')  # 读取图片
plt.figure("旋转图像")
plt.subplot(1,2,1)
plt.title('original image') # 设置标题
plt.imshow(img) # 显示原始图片
plt.axis('off') # 不显示坐标轴
dst = img.rotate(45) # 顺时针旋转45度
plt.subplot(1,2,2)
plt.title('rotated image') # 设置标题
plt.imshow(dst) # 显示裁剪后的图片
plt.axis('off') # 不显示坐标轴
plt.show()  # 显示图片框# 寻找边缘信息的滤波
img = Image.open('pic.jpg')  # 读取图片
gray = img.convert('L') # 转成灰度图
plt.figure("边缘信息滤波")
plt.subplot(1,2,1)
plt.title('original image') # 设置标题
plt.imshow(gray,cmap = 'gray') # 显示原始图片
plt.axis('off') # 不显示坐标轴
im = gray.filter(ImageFilter.FIND_EDGES) # 边缘滤波
plt.subplot(1,2,2)
plt.title('edge filtering') # 设置标题
plt.imshow(im,cmap = 'gray') # 显示裁剪后的图片
plt.axis('off') # 不显示坐标轴
plt.show()  # 显示图片框# 浮雕滤波
img = Image.open('pic.jpg')  # 读取图片
gray = img.convert('L') # 转成灰度图
plt.figure("浮雕滤波")
plt.subplot(1,2,1)
plt.title('original image') # 设置标题
plt.imshow(gray,cmap = 'gray') # 显示原始图片
plt.axis('off') # 不显示坐标轴
im =  gray.filter(ImageFilter.EMBOSS) # 浮雕滤波
plt.subplot(1,2,2)
plt.title('embossed filtering') # 设置标题
plt.imshow(im,cmap = 'gray') # 显示裁剪后的图片
plt.axis('off') # 不显示坐标轴
plt.show()  # 显示图片框# 轮廓滤波
img = Image.open('pic.jpg')  # 读取图片
gray = img.convert('L') # 转成灰度图
plt.figure("轮廓滤波")
plt.subplot(1,2,1)
plt.title('original image') # 设置标题
plt.imshow(gray,cmap = 'gray') # 显示原始图片
plt.axis('off') # 不显示坐标轴
im =  gray.filter(ImageFilter.CONTOUR) # 轮廓滤波
plt.subplot(1,2,2)
plt.title('contour filtering') # 设置标题
plt.imshow(im,cmap = 'gray') # 显示裁剪后的图片
plt.axis('off') # 不显示坐标轴
plt.show()  # 显示图片框# 图像增强
img = Image.open('pic.jpg')  # 读取图片
gray = img.convert('L') # 转成灰度图
plt.figure("图像增强")
plt.subplot(1,2,1)
plt.title('original image') # 设置标题
plt.imshow(gray,cmap = 'gray') # 显示原始图片
plt.axis('off') # 不显示坐标轴
im = ImageEnhance.Color(gray).enhance(0.5) # 图像增强
plt.subplot(1,2,2)
plt.title('enhanced image') # 设置标题
plt.imshow(im) # 显示裁剪后的图片
plt.axis('off') # 不显示坐标轴
plt.show()  # 显示图片框

  

转载于:https://www.cnblogs.com/liutongqing/p/6891429.html

python基于pillow库的简单图像处理相关推荐

  1. python 基于numpy数组的简单图像处理

    文章目录 使用PIL库进行灰度处理 将其旋转180度 使用matplotlib库完成灰度处理 python 基于numpy数组的简单图像处理 如图,以该猫咪图片为例(忽略水印).将该文件命名为cat. ...

  2. python中pillow库教程_Python图像处理库:Pillow 初级教程

    Image类 Pillow中最重要的类就是Image,该类存在于同名的模块中.可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建一个图片. 使用Image模块中的open函数 ...

  3. python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法

    本文实例讲述了Python基于jieba库进行简单分词及词云功能实现方法.分享给大家供大家参考,具体如下: 目标: 1.导入一个文本文件 2.使用jieba对文本进行分词 3.使用wordcloud包 ...

  4. python watchdog占用,python基于watchdog库全自动化监控目录文件

    楔子 有些时候我们需要对一个目录进行监控,检测其内部是否有文件的新增.删除.以及每个文件的内容是否发生变化,这个时候如果是你的话,你会选择怎么做呢? 显然也是一个比较麻烦的工作,倒不是说难,主要是比较 ...

  5. Python使用pillow库往图片上写入文字或覆盖另一张图片

    Python使用pillow库往图片上写入文字或覆盖另一张图片 python之pillow是 Python 的第三方图像处理库.pillow是PIL( Python Imaging Library)基 ...

  6. python的turtle库的简单使用

    python的turtle库的简单使用 Python的turtle库是一个直观有趣的图形绘制函数库,是python的标准库之一. 一.绘图坐标体系 turtle库绘制图形的基本框架:通过一个小海龟在坐 ...

  7. Python之Turtle库绘制简单图形

    Python之Turtle库绘制简单图形 来绘制正方形.三角形.五边形.五角形 import turtle #引入turtle库pen=turtle.Turtle() #创建turtle类型的画笔 # ...

  8. STM32CubeMX基于HAL库实现简单串口通信

    STM32CubeMX基于HAL库实现简单串口通信 板子:STM32F103C8 编译工具:Keil+STM32CubeMX 烧录工具:FlyMcu 串口调试程序:XCOM 实验要求: 1)设置波特率 ...

  9. Python学习-Matplotlib库绘制简单点阵图、线型图操作

    Python学习-Matplotlib库绘制简单散点图图和线型图.标签设置以及刻度线设置操作 目录 1.Matplotlib绘图细节的简单理解 2.绘制点图.线型图 3.给图表设置复杂标注 4.移动刻 ...

最新文章

  1. id和class到底要用哪一个?
  2. 坐标上升算法(Coordinate Ascent)及C++编程实现
  3. UML图系列——建模和面向对象
  4. JZOJ 5441. 【NOIP2017提高A组冲刺11.1】序列
  5. ceph常用命令-pool相关命令
  6. (五十九)iOS网络基础之UIWebView简易浏览器实现
  7. 基础笔试编程题(jz)
  8. Neville 插值方法
  9. c语言是否继续运行,C语言是否有运行时?
  10. 在使用FireFox浏览器时,经常打开新标签,页面总是不断自动刷新,解决办法
  11. Laravel Symfony_Crawler GuzzleHttp 爬虫 抓取行政区域
  12. matlab如何公式编辑器,公式编辑器怎么用 【搞定要领】
  13. oracle常用查询语句
  14. 零基础怎么学习平面设计*
  15. vue2.0生命周期数据共享
  16. 称为超级计算机,怎样的计算机被称为“巨型计算机”呢?
  17. 3.Ubuntu 安装Pinta图片处理工具
  18. Unity 使用贝塞尔曲线实现抛物线运动
  19. 10款超赞的Android智能车机软件
  20. JSON文件读写操作详解

热门文章

  1. 数据类型即其相互转换
  2. Linux文件系统ext3与ext4主要区别
  3. IK Analyzer 和 lucene结合使用
  4. linux清理内存的命令
  5. read实现交互输入自动化(笔记)
  6. ADO.NET实例教学一
  7. 安装和部署企业程序库
  8. C/C++位域知识小结
  9. ngrok 别人搭建好的
  10. 1047. 编程团体赛(20)-PAT乙级真题