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. threejs- z-fighting 问题(模型的重叠部位便不停的闪烁起来。这便是Z-Fighting问题)

    Z-Buffer 在threejs中,使用深度缓冲(Z-Buffer)来完成场景可见性计算,即确定场景哪部分可见,哪部分不可见.深度缓冲(Z-Buffer)是一个二维数组,其中的每一个元素对应屏幕上的 ...

  2. localstorage和vue结合使用2

    html <template> <div class="hello"> <div class="page-top"> < ...

  3. jquery分页插件精选

    1.最新的分页控件:Mricode.Pagination(推荐) https://github.com/mricle/Mricode.Pagination 2.Jquery Pagination Pl ...

  4. Jmeter常用脚本开发之Java请求

    Java请求:就是用来对java项目的类进行压测 例子:将输入的两个参数通过IO存入文件 1.创建Java工程,工程目录如下 2.将Jmeter-lib下面的所有jar包导入java工程, 3.创建一 ...

  5. mybatis入门--mapper代理方式开发

    不使用代理开发 之前,我们说了如何搭建mybatis框架以及我们使用mybatis进行简单的增删改查.现在,我们一起来构建一个dao层的完整代码.并用@test来模拟service层对dao层进行一下 ...

  6. BZOJ1856或洛谷1641 [SCOI2010]生成字符串

    BZOJ原题链接 洛谷原题链接 可以将\(1\)和\(0\)的个数和看成是\(x\)轴坐标,个数差看成\(y\)轴坐标. 向右上角走,即\(x\)轴坐标\(+1\),\(y\)轴坐标\(+1\),表示 ...

  7. java 环境搭建

    一.安装jdk 下载jdk http://www.oracle.com/technetwork/java/javase/downloads 将下载的jdk文件放到 /opt 下解压 $sudo cp ...

  8. ui设计用什么软件

    Ui设计用什么软件?作为ui设计师,你必须要熟练的使用以下几款设计软件,不然可能也无法胜任ui设计师的职位. ui设计除了要学习一些基本的操作软件,如PS AI AE AXURE 以外呢,还要学习比如 ...

  9. 繁体简体转化_langconv.py

    from copy import deepcopyimport re try: import psyco psyco.full()except: pass try: from zh_wiki impo ...

  10. android 使用UDP发送数据 DatagramSocket 创建对象为null

    DatagramSocket socket=null; try { socket = new DatagramSocket();  //这里创建对象为空 } catch (SocketExceptio ...