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() # 显示图片框

  

python基于pillow库的简单图像处理的更多相关文章

  1. Python用Pillow(PIL)进行简单的图像操作

    Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...

  2. python中用Pillow库进行图片处理

    一.Python中 PIL 图像处理库简介 PIL可以做很多和图像处理相关的事情: 图像归档(Image Archives).PIL非常适合于图像归档以及图像的批处理任务.你可以使用PIL创建缩略图, ...

  3. 使用Pillow库 创建简单验证码

    使用Pillow生成简单的验证码 本想做成字体各自按随机角度倾斜, 但没有在Pillow中找到相关的方法 import randomfrom PIL import Image, ImageDraw, ...

  4. 利用python中的库文件简单的展示mnist 中的数据图像

    import sys, os sys.path.append('F:\ml\DL\source-code') #导入此路径中 from dataset.mnist import load_mnist ...

  5. Python 处理图片 -- pillow库

    pip install pillow 基本使用 from PIL import Image # new 创建一张图片 im1 = Image.new('RGB', (500, 300), (50, 1 ...

  6. Python 基于request库的get,post,delete,封装

    # coding=utf-8 import json import requests class TestApi(object): """ /* @param: @ses ...

  7. Python和qqbot库开发简单的机器人

    from qqbot import QQBotSlot as qqbotslot, RunBot @qqbotslot def onQQMessage(bot, contact, member, co ...

  8. 尝试用python开发一款图片压缩工具1:尝试 pillow库

    开发目的 我经常使用图片.公众号文章发文也好,还是生活中要使用素材.图片是一种比文字更加直观的载体.但是图片更加占用带宽,很多软件都对图片有大小限制.图片太大也会影响加载速度.我试过几款图片压缩工具, ...

  9. Python常用的库简单介绍一下

    Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...

随机推荐

  1. 比特币学习-Transaction的locktime属性

    Locktime, also known as nLockTime from the variable name used in the reference client, defines the e ...

  2. vue-awesome-swiper轮播的使用

    一.安装vue-awesome-swiper npm install vue-awesome-swiper --save 二.引入插件 main.js里面分别引入(记得有些电脑要引入样式) impor ...

  3. Pycharm使⽤用秘笈v0.3PyCharm使⽤用秘籍

    Pycharm使⽤用秘笈v0.3PyCharm使⽤用秘籍 1. PyCharm的基本使⽤用 在PyCharm下为你的Python项⽬目配置Python解释器器 1. Project:当前项⽬目名> ...

  4. Linux定时任务Crontab使用 提示no crontab for root

    使用命令查询crontab 任务时,一直提示:no crontab for root .查看了一些资料,说是crontab在初始时,设置了一次编辑方式,所以试了一下crontab -e的方式编辑,即在 ...

  5. Linux硬件相关

    1)查看设备号/厂商号 http://blog.csdn.net/styshoo/article/details/51203881   二.硬件厂商 1)瑞传科技股份有限公司 https://www. ...

  6. .net 技术地图

    以下是技术牛人,灵感之源.在于15年7月23日归类的一个技术地图 主要包括10个大类.50个子类 http://jingyan.baidu.com/article/4ae03de344f9b33eff ...

  7. Cannot load JDBC driver class 'oracle.jdbc.OracleDriver'

    项目报这个错误,后来查了,是缺少ojdbc,也就是java操作oracle的包,通过https://mvnrepository.com/artifact/oracle/ojdbc/1.4,可以找到该包 ...

  8. BZOJ1079或洛谷2476 [SCOI2008]着色方案

    一道记忆化搜索 BZOJ原题链接 洛谷原题链接 发现对于能涂木块数量一样的颜色在本质上是一样的,所以可以直接压在一个状态,而这题的数据很小,直接暴力开\(6\)维. 定义\(f[a][b][c][d] ...

  9. readv writev示例程序

    当 readv() 时候,需要程序自己提供space,接收数据. #include <stdio.h> #include <stdlib.h> #include <str ...

  10. 超详细的PS抠图方法

    步骤: 1.打开图片,根据图片的特点选择抠图工具: 2.在图像上找到第一个定点,要求定点要完全暴露在画布中,并且是清晰可见的顶点: 3.抠取图像时,多边形套索的定点以及边线应该向内1-2个像素,为了避 ...