python计算视觉学习基础,PIL和pylab类库的简单使用,


一. 读图与显示

1.使用pylab中的 imread() 读图

img = imread('图片路径')

或者使用PIL中Image的open()方法

img = Image.open('图片路径')

2.显示使用pylab中的 imshow()

imshow(img)

或者 使用Image中的类(和上面不一样)

img.show()

测试用例:

#coding=utf-8
#
# 图片的读取和显示
from PIL import Image
import pylab as plb
#读图1
img = Image.open('test1.jpg')
#使用默认图片打开软件打开
img.show()#灰度化
grayimg = img.convert('L')
#注意:每次只能显示一张图片,需要关闭上一张
grayimg.show()
#使用python专用的打开图片的软件
plb.imshow(img)
#防止一闪而过
plb.show()

二. 新建窗口

使用 pylab 中的 figure()
试了下,貌似只能和imshow(img)一块使用(python专用的图片查看器)


三. 将图片转存:
PIL中提供save()方法用来存储多种格式的文件,
测试用例:

#coding=utf-8
from PIL import Image
import os
#可同时转存多张
filelist = ['F:/myPythonWork/PIL/test1.jpg'];
for infile in filelist:outfile = 'outfile' + ".jpg"if infile != outfile:try:Image.open(infile).save(outfile)except IOError:print "cannot convert", infile

PIL 的open() 函数用于创建PIL 图像对象,save() 方法用于保存图像到具有指定文
件名的文件。除了后缀变为“.jpg”,上述代码的新文件名和原文件名相同。PIL 是
个足够智能的类库,可以根据文件扩展名来判定图像的格式。PIL 函数会进行简单
的检查,如果文件不是JPEG 格式,会自动将其转换成JPEG 格式;如果转换失败,
它会在控制台输出一条报告失败的消息。

图片文件的操作,返回目录下指定文件类型文件名的列表

import os
def get_imlist(path):""" 返回目录中所有JPG 图像的文件名列表"""return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.类型')]

四. 创建缩略图
PIL提供了 thumbnail((128,128))方法,可以直接使用图片对象进行调用

#将图片的大小转化为100*100(单位貌似是像素)
img.thumbnail((100,100))

五.复制和粘贴图片的区域

PIL中提供了crop()方法可以从一张图片中裁剪某一区域

#四个元素的元组,分别是左上右下(左上,右下)
box = (100,100,400,400)
region = pil_im.crop(box)

然后使用可以使用 paste() 方法将该区域放回去

#旋转180度
region = region.transpose(Image.ROTATE_180)
#放回原处
pil_im.paste(region,box)

六. 调整尺寸和旋转

1.调增尺寸:PIL中提供了 resize() 方法

#将图片 pil_im的大小设为 100*100
out = pil_im.resize((100,100))

2.旋转:
使用rotate()方法,注意:逆时针方式表示旋转角度

#逆时针旋转45度
out = pil_im.rotate(45)

测试案例:

#coding=utf-8
#使用PIL类库中常见的方法制作一个小案例
#
#读取一张图片,将图片中一部分进行旋转,
#然后整体旋转,最后显示并存储在C盘中
#from PIL import Image
import pylab as plb
import os#存储图片
def saveImg(img,type):try:img.save('C:/test/testr.' + type)except IOError:return Falsereturn Trueimg = Image.open('test1.jpg')
#转化为二值图像
grayImg = img.convert('L')
'''
#显示 默认图片浏览器
grayImg.show()
'''
#设置缩略图
# imgchange1 = grayImg.thumbnail((100,100))
box = (20,20,130,130)
imgchange2 = img.crop(box)
imgchange2 = imgchange2.transpose(Image.ROTATE_180)
grayImg.paste(imgchange2,box)#注意返回值不是图片或者矩阵类型
#显示为灰色 注意:不加的话会显示伪彩色,一种特殊的彩色
plb.gray()
#显示 python专用图片浏览器
plb.figure('demo')  #设置窗口信息
plb.title('demo1')
plb.imshow(grayImg)
#防止一闪而过
plb.show()
if saveImg(grayImg,'jpg'):print 'ok'

案例结果:

1-python图像处理之PIL,pylab相关推荐

  1. Python图像处理库PIL -- 学习资源

    Resources 官方指南PIL Handbook(建议看英文,翻译) pil下载 安装中文指南 from the PythonWare PIL home page 推荐先看Python Imagi ...

  2. python基础教程:Python图像处理库PIL中图像格式转换的实现

    这篇文章主要介绍了Python图像处理库PIL中图像格式转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 在数字图像处理 ...

  3. Python图像处理库PIL中图像格式转换(一)

    参考:https://blog.csdn.net/icamera0/article/details/50843172 在数字图像处理中,针对不同的图像格式有其特定的处理算法.所以,在做图像处理之前,我 ...

  4. Python图像处理库PIL中图像格式转换

    在数字图像处理中,针对不同的图像格式有其特定的处理算法.所以,在做图像处理之前,我们需要考虑清楚自己要基于哪种格式的图像进行算法设计及其实现.本文基于这个需求,使用python中的图像处理库PIL来实 ...

  5. Python图像处理库PIL中的convert函数的用法

    在数字图像处理中,针对不同的图像格式有其特定的处理算法.所以,在做图像处理之前,我们需要考虑清楚自己要基于哪种格式的图像进行算法设计及其实现.本文基于这个需求,使用python中的图像处理库PIL来实 ...

  6. python图像处理:PIL与Pillow区别

    在学习python图像处理时,傻傻的分不清PIL和Pillow,于是简单整理一下二者区别. 一.PIL PIL全称是:Python Imaging Library. PIL是一个强大的.方便的pyth ...

  7. Python图像处理库PIL的ImageOps模块介绍 ----- 一些基本的图像操作

    原文地址:http://blog.csdn.net/icamera0/article/details/50785776 原文博主的博客中有相当多的python图像处理操作介绍,如有需要,可移驾原博主博 ...

  8. Python图像处理库PIL——resize()函数

    在神经网络的训练与测试中,不同的网络需要的图像大小不一样. 所以,在将图像送入网络之前,我们需要将图像缩放到符合网络维度的大小. 本文基于这个需求,使用python中的图像处理库PIL来实现图像的缩放 ...

  9. Python图像处理工具——PIL、opencv、matplotlib

    PIL PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片 Image读取图片为Image类型,可直接显示 from PIL import Image img = Image.open('y ...

  10. Python图像处理库PIL的ImageStat模块介绍

    ImageStat模块用于计算整个图像或者图像的一个区域的统计数据. 一.ImageStat模块的函数 1.  Stat 定义1:ImageStat.Stat(image)⇒ Stat instanc ...

最新文章

  1. 透视鹏程.盘古:首个2000亿参数中文大模型是怎样炼成的?
  2. vlc web 登录账号_怎么在web网页端解绑敬业签绑定的手机号?
  3. 抖音测试心理是什么软件,实用心理测试大全抖音版-抖音实用心理测试大全小游戏官方版预约 v1.0-友情手机站...
  4. 可穿插PC端浏览器任何位置的爱心分割
  5. Xamarin Evolve 2016 Keynote回顾
  6. CATia对计算机配置要求,【2人回答】求CATIA对电脑的详细配置要求-3D溜溜网
  7. python操作MySQL 模拟简单银行转账操作
  8. 华为云域名注册_华为云域名专场钜惠,助推中小企业云速建站
  9. 只需10分钟!就能用Flask,Docker和Jenkins部署机器学习模型
  10. Python实现GCS bucket断点续传功能,分块上传文件
  11. TypeScript泛型接口
  12. 自动控制原理:一阶系统的时域分析
  13. jpg和tif转pdf遇到的问题和解决方法
  14. 移动物联网卡哪里可以办理
  15. [原创]网站文章页面添加分享按钮,百度按钮代码复制使用时不显示问题解决!
  16. windows/vs如何获取程序内存使用量和时间花费
  17. css样式鼠标放上去变成手的形状
  18. 【划词翻译】Ubuntu 实现划词翻译
  19. 【Paper Note】基于决策树算法的电信运营商客户流失预测
  20. Bigtable学习翻译

热门文章

  1. 科学计算机读书报告单,科学网—读书报告-20171016 - 梁斌的博文
  2. window10目前(2021.2.13)的iTunes的iOS更新升级固件位置
  3. el-table合并一列中数据相同的单元格
  4. java 添加空格方法_java 各种去空格的方法
  5. 【信号检测】基于matlab自适应滤波法微弱信号检测【含Matlab源码 2308期】
  6. 7-3 求n以内最大的k个素数以及它们的和
  7. ubuntu home目录下的主用户目录被删处理
  8. 【密码产品篇】VPN产品密钥体系结构
  9. 现代微型计算机内存组成,计算机一级《MS Office》考前冲刺题及答案2016
  10. Android app开发常用图标网站