python基于pillow库的简单图像处理
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库的简单图像处理的更多相关文章
- Python用Pillow(PIL)进行简单的图像操作
Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...
- python中用Pillow库进行图片处理
一.Python中 PIL 图像处理库简介 PIL可以做很多和图像处理相关的事情: 图像归档(Image Archives).PIL非常适合于图像归档以及图像的批处理任务.你可以使用PIL创建缩略图, ...
- 使用Pillow库 创建简单验证码
使用Pillow生成简单的验证码 本想做成字体各自按随机角度倾斜, 但没有在Pillow中找到相关的方法 import randomfrom PIL import Image, ImageDraw, ...
- 利用python中的库文件简单的展示mnist 中的数据图像
import sys, os sys.path.append('F:\ml\DL\source-code') #导入此路径中 from dataset.mnist import load_mnist ...
- Python 处理图片 -- pillow库
pip install pillow 基本使用 from PIL import Image # new 创建一张图片 im1 = Image.new('RGB', (500, 300), (50, 1 ...
- Python 基于request库的get,post,delete,封装
# coding=utf-8 import json import requests class TestApi(object): """ /* @param: @ses ...
- Python和qqbot库开发简单的机器人
from qqbot import QQBotSlot as qqbotslot, RunBot @qqbotslot def onQQMessage(bot, contact, member, co ...
- 尝试用python开发一款图片压缩工具1:尝试 pillow库
开发目的 我经常使用图片.公众号文章发文也好,还是生活中要使用素材.图片是一种比文字更加直观的载体.但是图片更加占用带宽,很多软件都对图片有大小限制.图片太大也会影响加载速度.我试过几款图片压缩工具, ...
- Python常用的库简单介绍一下
Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...
随机推荐
- java类中根据已有的变量复写类的toString方法
java类中根据已有的变量复写类的toString方法: 在该类中定义好变量之后,shift+alt+s,从出现的列表中点击gemerate toString,就会自动生成对应的toString方法.
- Memcached使用与纠错(附代码和相关dll)
今天没事研究一下,谁想到遇到了几个dll找不到,网上也不好找到,索性功夫不负有心人.贴出代码和相关的dll Memcached代码:(网上都是的,很多人都保存了这个代码) using Memcache ...
- Android开发之ListView设置隔行变色
public class HLCheckAdapter extends BaseAdapter { private List<HuoLiang> list; private Context ...
- 关系测试# 或 print(s2-s)Python 集合
1集合是一个无序的,不重复的数据组合,它的主要作用如下(set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在set中,没有重复的key): 去重,把一个列表变成 ...
- Git二进制文件冲突解决
Git二进制文件冲突解决 在我们合并分支的时候,如果两个分支都进行了修改那么就会产生合并冲突.对于非二进制文件的冲突解决,git会给出冲突的位置我们可以手动修改然后再commit.但是对于非二进制文件 ...
- PAT 1026 程序运行时间(15)(C++&Java&Python)
1026 程序运行时间(15)(15 分) 要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间 ...
- 转:Struts2返回JSON数据的具体应用范例
http://blog.csdn.net/jspamd/article/details/8810109 纠错: <result type="json" name=" ...
- CXF wsdl2java (转载)
2011-03-28 14:27 9735人阅读 评论(2) 收藏 举报 servicewebserviceinterfacejavastringserver CXF wsdl2Java 一. 简介 ...
- Selenium实战总结(webwiew下拉框定位)
基于常见的两种下拉框的展示形式: 1.点击弹出下拉框: 2.鼠标移动弹出下拉框(move_to_element) 实例一[鼠标点击弹出的下拉框]: e.g百度首页的设置--高级搜索--时间: 导包: ...
- python之Flask框架
一.简单的Flask框架 1)flask简介 Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序. 这个 wdb 应用程序可以使一些 we ...