1.       安装

   输入 pip install PIL报错:

  ERROR: Could not find a version that satisfies the requirement PIL (from versions: none)
  ERROR: No
matching distribution found for PIL

解决方案:

Python3中Pillow源自PIL(在2中使用)

(1)      
python -m pip install Pillow

(2)      
pip install path\文件名 文件名为在网址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

中下载对应的模块。

使用(1)时报错:

ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org',
port=443): Read timed out.

超时问题,延长时间:

python -m pip --default-timeout=100 install -U Pillow

注:pillow是PIL(Python成像库)的一个分支,不再被维护。所以,为了保持向后兼容性,往往使用旧的模块名称——PIL,即引用模块,直接使用import PIL

2.      
功能

以快速访问几种基本像素类型表示的图像数据为核心,能对图像做归档处理、显示图像、常见的图像处理(变换、点操作、滤波、颜色等等)。

1.1        
Image模块

from PIL import Image

# 打开一个图像

Picture =
Image.open("C:\\Users\\sue\\Pictures\\test.png")

print(Picture)

# 返回图像实例的属性

print("图像格式:{};图像模式:{};图像大小:{}。".format(Picture.format,Picture.mode,Picture.size))

# 查看实例,show是暂时存放了一个临时文件,存在效率问题

Picture.show()

# 实例的方法:

# 1.保存图片,以及转换图片格式,无法转换报转换错误:svae(存储文件名[,存储文件格式:可省略由扩展名决定])

Picture.save("C:\\Users\\sue\\Pictures\\test2.png","PNG")

Picture.save("C:\\Users\\sue\\Pictures\\test3.jpg")

try:

Picture.save("C:\\Users\\sue\\Pictures\\test4.jpg","JPG")
#明确格式后,加转换格式反而报错KeyError

except:

print("cannot convert")

# 2.制作缩略图
p.thumbnail((x,y)),参数为一个元组

width,heighth = Picture.size

Picture.thumbnail((width/2,heighth/2))

Picture.save("C:\\Users\\sue\\Pictures\\test2.png","PNG")

# 3.裁剪图片:p.crop((x,y,x+m,y+n)),x,y为以图片左上角为原点,向下为y轴,向右为x轴;

#  
m,n为想要裁剪的长宽

#  在原图(20,10)的位置开始裁剪一个长为200,宽100的图

PCrop = Picture.crop((20,40,20+200,10+100))

PCrop.show()

# 4.变形和粘贴


p.transpose(Image.XX):其中XX=FLIP_LEFT_RIGHT(左右镜像);FLIP_TOP_BOTTOM(上下镜像)

#   
ROTATE_90(逆时针旋转90度);RATATE_180(逆时针旋转180度);ROTATAE_270;

#   
TRANSPOSE(像素矩阵转置,空间变换);TRANVERSE(空间变换)


p.paste(p1,(x,y,x+m,y+n)),将图片p1粘贴到p的(x,y)处,占长m宽n的大小。后面两个不写就是完全粘贴p1

from PIL import Image

# 将人物图像的左边镜像颠倒,复制到右边,右边原样复制到左边

def P_transpose(P):

x,y = P.size

pleft = P.crop((0,0,x//2,y))

pright = P.crop((x//2,0,x,y))

pleft = pleft.transpose(Image.FLIP_TOP_BOTTOM)

P.paste(pright,(0,0,x//2,y))

P.paste(pleft,(x//2,0,x,y))

P.show()

Picture =
Image.open("C:\\Users\\sue\\Pictures\\人物.png")

P_transpose(P)

# 5.调整尺寸

# resize((m,n))

# rotate(sigma),逆时针调整角度

图像处理_Image的更多相关文章

  1. Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉

    Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要 ...

  2. Atitit 图像处理的摩西五经attilax总结

    Atitit 图像处理的摩西五经attilax总结 1. 数字图像处理(第三版)1 2. 图像处理基础(第2版)(世界著名计算机教材精选)1 3. 计算机视觉特征提取与图像处理(第三版)2 4. Op ...

  3. Atitit 图像处理的心得与疑惑 attilax总结

    Atitit 图像处理的心得与疑惑 attilax总结 1.1. 使用类库好不好??还是自己实现算法1 1.2. 但是,如果遇到类库体积太大,后者没有合适的算法,那就只能自己开发算法了1 1.3. 如 ...

  4. Atitit 图像处理 调用opencv 通过java  api   attilax总结

    Atitit 图像处理 调用opencv 通过java  api   attilax总结 1.1. Opencv java api的支持 opencv2.4.2 就有了对java api的支持1 1. ...

  5. Atitit MATLAB 图像处理 经典书籍attilax总结

    Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读 ...

  6. Atitit 图像处理类库大总结attilax qc20

    Atitit 图像处理类库大总结attilax qc20 1.1. 选择与组合不同的图像处理类库1 1.2. Halcon 貌似商业工具,功能强大.1 1.3. Openvc  Openvc功能也是比 ...

  7. Atitit MATLAB 图像处理attilax总结

    Atitit MATLAB 图像处理attilax总结 1.1. 下载 Matlab7.0官方下载_Matlab2012 v7.0 官方简体中文版-办公软件-系统大全.html1 1.2. Matla ...

  8. 使用MATLAB对图像处理的几种方法(下)

     试验报告 一.试验原理: 图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境.灰度线性变换和灰度拉伸是对像素灰度值的变换操作,直方图是对像素灰度值的统计,直方图均衡是对 ...

  9. 使用MATLAB对图像处理的几种方法(上)

    实验一图像的滤波处理 一.实验目的 使用MATLAB处理图像,掌握均值滤波器和加权均值滤波器的使用,对比两种滤波器对图像处理结果及系统自带函数和自定义函数性能的比较,体会不同大小的掩模对图像细节的影响 ...

随机推荐

  1. Android/IOS APP界面设计之尺寸规范

    1.尺寸以及分辨率 iPhone的界面尺寸不用多说,640*960是基本OK的,也可以是适应5S的640*1136,马上iPhone 6也快来了(随便吐槽一下网上曝的真机谍照,真是丑到离谱...),只 ...

  2. 12-python基础—python3中的reduce()

    在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 functools 模块里,需要通过引入 functools 模块来调用 reduce() 函数: from ...

  3. .sync 修饰符的理解

    正常 子组件: this.$emit('update:title', newTitle) 父组件: <text-document v-bind:title="doc.title&quo ...

  4. 自己写IRP,做文件操作,遇到的坑

    在写文件的时候没问题,但是写完文件之后,就出问题了, 什么问题呢,是因为写完文件之后,文件关闭之后, 调用了一个叫做 CcFlushCache 的函数,这个函数是从CcWriteBehind 调过来的 ...

  5. CG-CTF web部分wp

    bin不动了,学学webWEB1,签到1f12,得到flag2,签到2给了输入窗口和密码,但输入后却显示错误,查看源码,发现对输入长度进行了限制,改下长度,得到flag3,md5 collision给 ...

  6. 实现一个EventEmitter类,这个类包含以下方法: on/ once/fire/off

    实现一个EventEmitter类,这个类包含以下方法: on(监听事件,该事件可以被触发多次)- once(也是监听事件,但只能被触发一次)- fire(触发指定的事件)- off(移除指定事件的某 ...

  7. Rendering Problems The following classes could not be found:- android.support.v7.internal.app.WindowDecorActionBar (Fix Build Path, Create Class)

    如图出现如下的错误的时候,一般都是升级Androdi Studio 后导致的,引入库不全,或者其他 东西缺少 可以如下解决方案:

  8. 【CSS】div的背景图完整图片覆盖

    最初的代码: .container_first { width: 100%; height: 100%; background: url(10176581.jpg); background-size: ...

  9. 前端学习(八)sass和bootstrap(笔记)

    less sass 和less基本上70%差不多(书写方式不一样) sass功能更多一点 1.定义一个变量 $b:blue; div{width:100px;height:100px; backgro ...

  10. elasticsearch启动问题

    ES安装完一直启动不了,问题解决. 报错: ERROR: bootstrap checks failed system call filters failed to install; check th ...