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. 设置 Quartus II 的仿真时间大于 1us

    Quartus II 仿真的默认时长是 1us. 设置时钟时看到 End time 想修改时长,把默认的 1us 改成 10us. 然后提示 End time 不合法.(只能设置为 0 到 1us) ...

  2. 点读系列《流畅的python》

    第1章 python数据模型 python的写法是由背后的魔法方法实现的,比如obj[key],解释器实际调用的是obj.__getitem__(key) 作者把魔法方法叫做双下方法,因为有两个下划线 ...

  3. grafana初体验

    1.centos版下载安装 wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.0.4-1.x86_6 ...

  4. spark复习总结01

    1.MapReduce和spark的对比 MapReduce Spark 数据存储结构:磁盘hdfs文件系统的split 使用内存构建弹性分布式数据集RDD,对数据进行运算和cache 编程范式:Ma ...

  5. 嵌套循环结合修改IFS环境变量遍历文件数据中IFS的修改一致性

    以下这个脚本使用了两个不同的IFS值来解析数据.第一个IFS值解析出/etc/passwd文件中的单独的行.内部for循环接着将IFS值改为冒号,云溪你从/etc/passwd的行中解析出单独的值. ...

  6. 处理CSS前缀问题的神器——AutoPrefixer

    众所周知为兼容所有浏览器,有的CSS属性需要对不同的浏览器加上前缀,然而有时添加一条属性,需要添加3~4条类似的属性只是为了满足浏览器的兼容,这不仅会增加许多的工作量. What is AutoPre ...

  7. Red5文件结构简介

    Red5文件结构简介 Red5 是 支持Windows,Linux等多平台的RTMP流媒体服务器,最早属于谷歌下的开源项目,先已移植到Github,地址为https://github.com/Red5 ...

  8. ionic3.0 中带顶部导航的下拉刷新列表的实现

    1.最终实现效果 2.html代码布局: 3.css样式控制(注:下面这两个css类名需在浏览器解析后才可看到)

  9. 杭电多校第六场-J-Ridiculous Netizens

    Problem Description Mr. Bread has a tree T with n vertices, labeled by 1,2,…,n. Each vertex of the t ...

  10. secureCRT The remote system refused the connection.解决办法

    使用远程登录工具SecureCRT登陆ubuntu的时候遇到了这个问题: secureCRT The remote system refused the connection 这个问题的原因是是Ubu ...