学习目的:
CS2使用Python图像处理库Pillow处理图像文件

学习内容:
CS2.1安装Pillow
Pillow是Python中的图像处理库(PIL:Python Image Library),提供了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存,图像显示,格式转换以及基本的图像处理操作等。
1.Pycharm安装Pillow
Pycharm:首先右键单击File–>Settings

选择Project Interpreter,如果安装了Anaconda3可以直接导入它的库;如果是Pycharm,点击+号,Add,搜索要导入的库,然后install package,等待安装完成

2.Anaconda3 :安装的时候就己经有Pillow库了,直接调用

CS2.2 打开和显示图像
使用PIL.Image模块的open()函数可以打开一个图像,返回一个图像对象,然后调用图像对象的show()方法,可以在屏幕上显示图像。
1.新建一个Project,取名为Pillow,new---->python file ----->取名为test

2.终端输入D:\PycharmProjects\Pillow\test.py运行,调用系统默认的图像软件打开图片,并输出对应图片的信息。

CS2.3 图像的基本操作
1.新建一个python文件,取名为image_test
2.把一幅图像的4个副本排列成2×2网格:在左上方的副本是原始图像,而画面右上方、左下方、右下方则分别使用模块PIL.ImageFilter中定义的内置过滤器CONTOUR、EMBOSS、FIND_EDGES进行过滤。
3.终端输入命令行 D:\PycharmProjects\Pillow\image_test.py C:\images\1.jpg

CS2.4 批量图像格式转换
1.新建一个python文件,取名为image_convert
2.将jpg图片批量转化为png图片

3.终端命令行输入: D:\PycharmProjects\Pillow\image_convert.py c:\images jpg png

运行前:

运行后:

CS2.5 批量创建缩略图
1.新建一个python文件,取名为image_thumbnail
2.将jpg图片批量转为对对应的缩略图

3.终端输入:D:\PycharmProjects\Pillow\image_thumbnail.py c:\images jpg

CS2.6 批量图像加文字水印
1.新建一个python文件,取名为image_watermark1
2.给jpg图片添加文字水印

3.终端输入:
D:\PycharmProjects\Pillow\image_watermark1.py c:\images jpg “Python”

CS2.7 批量图像加图片水印
1.创建一个新的python文件,取名为 image_watermark2
2.首先使用Python的Pillow图像库中的Image模块的new函数可以创建水印图像对象,并使用图像对象的paste方法把log图像粘贴到水印图像,最后通过Image模块的composite函数合成水印图像和原图像。

3.终端输入:D:\PycharmProjects\Pillow\image_watermark2.py c:\images jpg c:\images\logo.png
运行前:

运行后:
CS2.8 批量调整图像大小
1.创建一个新的python文件,取名为image_resize
2.使用Image对象的resize()方法可以调整图像大小。
运行效果:
3.终端输入:可以自定义设置图片的大小D:\PycharmProjects\Pillow\image_resize.py c:\images jpg 128 128

运行后:

CS3 使用嵌套循环实现图像处理算法

学习内容:
CS3.1 图像的数据结构概述
实际上,在“底层”图像是由像素点组成的二维数组,每个像素点的位置表示为两个整数的元组,像素的值根据图像模式由对应的元组组成(例如,RGB模式表示为三个整数值组成的元组,分别表示构成颜色的红、蓝、绿的值,范围为0到255)。
图像处理的算法(例如,复制、旋转、裁剪和平滑图像等)根本上就是使用嵌套循环模式对这些像素进行处理。PIL.Image模块中的Image类的方法getpixel()和putpixel()可以用于读取和修改特定位置(loc)的像素的颜色值(pix)。其语法格式如下:
im.getpixel(loc) #返回位于位置loc的像素的颜色。
im.putpixel(loc, pix) #把位于位置loc的颜色替换为pix。
CS3.2 拷贝图像
通过打开原始图像,创建一个新的大小相同的空白图像,然后将旧图像中的像素颜色复制到新图像相应的像素中。即使用嵌套循环,把旧图像位置(i, j)的像素复制到新图像的位置(i, j)。
新建image_copy.py文件,输入代码,并运行:

运行结果:

CS3.3 剪裁图像
通过打开原始图像,指定一个四元组的剪裁框,创建一个与剪裁框大小相同的空白图像,然后将旧图像中剪裁框内的像素颜色复制到新图像中。同样可以使用嵌套循环实现像素复制。
新建image_crop文件,输入代码,点击运行:

裁剪后

CS3.4 水平或垂直翻转图像
通过打开原始图像,创建一个新的大小相同的空白图像,然后将旧图像中的像素颜色复制到新图像相应的像素中。水平翻转时,原始图像的像素(i,j)映射到目标图像的位置(width-i-1,j);垂直翻转时,原始图像的像素(i,j)映射到目标图像的位置(i,height-j-1)。

输入代码并运行

测试代码:

运行后:

CS3.5 逆时针或顺时针旋转图像90度
逆时针或顺时针旋转图像90度的算法可以通过打开原始图像(width×height),创建一个新的height×width大小的空白图像,然后将旧图像中的像素颜色复制到新图像中相应的像素中。逆时针旋转图像90度时,原始图像的像素(i,j)映射到目标图像的位置(j,width-i-1);顺时针旋转图像90度,原始图像的像素(i,j)映射到目标图像的位置(height-j-1,i)。
输入代码运行:

运行结果:

CS3.6 平滑图像过滤器
简单的平滑过滤器算法可以通过打开原始图像,创建-一个新的大小相同的空白图像,然后将将新图像中的每个像素(i,j)的颜色设置为原始像素(i,j)及其相邻像素的颜色的平均值。不位于图像边界上像素(i,j)有8个相邻像素,其相邻像素位于从列i-1到列i+1和行j+1到行j+1范围。故可以通过下列代码计算新图像中像素(i,j)的颜色:原始图像中像素(i,j)和它的邻居像素的颜色的平均值。注意,如果像素位于边缘,在i-1可能小于0,故可以使用max(-1,0)作为下限:同样,可以使用min(i+1,width)作为上限。
输入代码并运行:

运行结果:在这里插入图片描述

学习目的:

CS2使用Python图像处理库Pillow处理图像文件

学习内容:
CS2.1安装Pillow
Pillow是Python中的图像处理库(PIL:Python Image Library),提供了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存,图像显示,格式转换以及基本的图像处理操作等。
1.Pycharm安装Pillow
Pycharm:首先右键单击File–>Settings

选择Project Interpreter,如果安装了Anaconda3可以直接导入它的库;如果是Pycharm,点击+号,Add,搜索要导入的库,然后install package,等待安装完成

2.Anaconda3 :安装的时候就己经有Pillow库了,直接调用

CS2.2 打开和显示图像
使用PIL.Image模块的open()函数可以打开一个图像,返回一个图像对象,然后调用图像对象的show()方法,可以在屏幕上显示图像。
1.新建一个Project,取名为Pillow,new---->python file ----->取名为test

2.终端输入D:\PycharmProjects\Pillow\test.py运行,调用系统默认的图像软件打开图片,并输出对应图片的信息。

CS2.3 图像的基本操作
1.新建一个python文件,取名为image_test
2.把一幅图像的4个副本排列成2×2网格:在左上方的副本是原始图像,而画面右上方、左下方、右下方则分别使用模块PIL.ImageFilter中定义的内置过滤器CONTOUR、EMBOSS、FIND_EDGES进行过滤。
3.终端输入命令行 D:\PycharmProjects\Pillow\image_test.py C:\images\1.jpg

CS2.4 批量图像格式转换
1.新建一个python文件,取名为image_convert
2.将jpg图片批量转化为png图片
3.终端命令行输入: D:\PycharmProjects\Pillow\image_convert.py c:\images jpg png

运行前:

运行后:

CS2.5 批量创建缩略图
1.新建一个python文件,取名为image_thumbnail
2.将jpg图片批量转为对对应的缩略图

3.终端输入:D:\PycharmProjects\Pillow\image_thumbnail.py c:\images jpg

CS2.6 批量图像加文字水印
1.新建一个python文件,取名为image_watermark1
2.给jpg图片添加文字水印

3.终端输入:
D:\PycharmProjects\Pillow\image_watermark1.py c:\images jpg “Python”

CS2.7 批量图像加图片水印
1.创建一个新的python文件,取名为 image_watermark2
2.首先使用Python的Pillow图像库中的Image模块的new函数可以创建水印图像对象,并使用图像对象的paste方法把log图像粘贴到水印图像,最后通过Image模块的composite函数合成水印图像和原图像。

3.终端输入:D:\PycharmProjects\Pillow\image_watermark2.py c:\images jpg c:\images\logo.png
运行前:

运行后:
CS2.8 批量调整图像大小
1.创建一个新的python文件,取名为image_resize
2.使用Image对象的resize()方法可以调整图像大小。
运行效果:
3.终端输入:可以自定义设置图片的大小D:\PycharmProjects\Pillow\image_resize.py c:\images jpg 128 128

运行后:

CS3 使用嵌套循环实现图像处理算法

学习内容:
CS3.1 图像的数据结构概述
实际上,在“底层”图像是由像素点组成的二维数组,每个像素点的位置表示为两个整数的元组,像素的值根据图像模式由对应的元组组成(例如,RGB模式表示为三个整数值组成的元组,分别表示构成颜色的红、蓝、绿的值,范围为0到255)。
图像处理的算法(例如,复制、旋转、裁剪和平滑图像等)根本上就是使用嵌套循环模式对这些像素进行处理。PIL.Image模块中的Image类的方法getpixel()和putpixel()可以用于读取和修改特定位置(loc)的像素的颜色值(pix)。其语法格式如下:
im.getpixel(loc) #返回位于位置loc的像素的颜色。
im.putpixel(loc, pix) #把位于位置loc的颜色替换为pix。
CS3.2 拷贝图像
通过打开原始图像,创建一个新的大小相同的空白图像,然后将旧图像中的像素颜色复制到新图像相应的像素中。即使用嵌套循环,把旧图像位置(i, j)的像素复制到新图像的位置(i, j)。
新建image_copy.py文件,输入代码,并运行:

运行结果:

CS3.3 剪裁图像
通过打开原始图像,指定一个四元组的剪裁框,创建一个与剪裁框大小相同的空白图像,然后将旧图像中剪裁框内的像素颜色复制到新图像中。同样可以使用嵌套循环实现像素复制。
新建image_crop文件,输入代码,点击运行:

运行结果:

裁剪后:

CS3.4 水平或垂直翻转图像
通过打开原始图像,创建一个新的大小相同的空白图像,然后将旧图像中的像素颜色复制到新图像相应的像素中。水平翻转时,原始图像的像素(i,j)映射到目标图像的位置(width-i-1,j);垂直翻转时,原始图像的像素(i,j)映射到目标图像的位置(i,height-j-1)。

输入代码并运行

测试代码:

运行后:

CS3.5 逆时针或顺时针旋转图像90度
逆时针或顺时针旋转图像90度的算法可以通过打开原始图像(width×height),创建一个新的height×width大小的空白图像,然后将旧图像中的像素颜色复制到新图像中相应的像素中。逆时针旋转图像90度时,原始图像的像素(i,j)映射到目标图像的位置(j,width-i-1);顺时针旋转图像90度,原始图像的像素(i,j)映射到目标图像的位置(height-j-1,i)。
输入代码运行:

运行结果:

CS3.6 平滑图像过滤器
简单的平滑过滤器算法可以通过打开原始图像,创建-一个新的大小相同的空白图像,然后将将新图像中的每个像素(i,j)的颜色设置为原始像素(i,j)及其相邻像素的颜色的平均值。不位于图像边界上像素(i,j)有8个相邻像素,其相邻像素位于从列i-1到列i+1和行j+1到行j+1范围。故可以通过下列代码计算新图像中像素(i,j)的颜色:原始图像中像素(i,j)和它的邻居像素的颜色的平均值。注意,如果像素位于边缘,在i-1可能小于0,故可以使用max(-1,0)作为下限:同样,可以使用min(i+1,width)作为上限。
输入代码并运行:

运行结果:

Python使用Pillow库进行图像相关推荐

  1. Python使用pillow库往图片上写入文字或覆盖另一张图片

    Python使用pillow库往图片上写入文字或覆盖另一张图片 python之pillow是 Python 的第三方图像处理库.pillow是PIL( Python Imaging Library)基 ...

  2. python 颜色_如何使用python中matplotlib库分析图像颜色

    用代码分析图像可能很困难.你如何使代码"理解"图像的上下文? 通常,使用AI分析图像的第一步 是找到主要颜色.在如何使用python中matplotlib库分析图像颜色中,我们将使 ...

  3. 图像基础知识与Python中Pillow库Image模块的基础应用

    图像介绍 像素 图像通常由像素构成,每一个像素由三个距离很近的点构成,他们的颜色分别是红.绿.蓝.每个像素可由一个元组(r,g,b)表示,r.g.b通常为不超过255的整数. 图像的常见模式 RGB ...

  4. python中pillow库教程_Python图像处理库:Pillow 初级教程

    Image类 Pillow中最重要的类就是Image,该类存在于同名的模块中.可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建一个图片. 使用Image模块中的open函数 ...

  5. python基于pillow库的简单图像处理

    from PIL import Image from PIL import ImageFilter from PIL import ImageEnhance import matplotlib.pyp ...

  6. python中pillow库怎么使用_Python 图像库Pillow使用

    需求是将一张含有透明度的图片和一张正常图片进行常规合并,并在图片上添加文字,代码如下: ''' from PIL import Image import cv2 base_image = Image. ...

  7. python pil怎么安装_python pil 怎么安装 怎样安装python的图像处理库pillow

    python 怎么安装pillow 1. 安装pip [plain] view plain copy sudo easy_install pip pip 安装成功就可以直接安装pil或者pillow ...

  8. python傅里叶变换库_python的numpy库和cv2库实现图像傅里叶变换

    码字不易,如果对您有所帮助,记着点赞哦! 一. 图像傅里叶变换原理: 对二维图像进行傅里叶变换用如下公式进行: 图像长M,高N.F(u,v)表示频域图像,f(x,y)表示时域图像.u的范围为[0,M- ...

  9. python图片压缩不失真_使用 python 压缩 png 图片,高达 80% 压缩率,肉眼无差异(一):为什么不用 pillow库.md...

    在网上有很多使用 python 的 pillow 库进行图片压缩的教程,使用简单,但是压缩效果存在明显的色彩不自然,这是因为 pillow 库采取的压缩算法没有优化的问题. 这个系列实现一款简单的压缩 ...

最新文章

  1. Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
  2. MySQL数据库操作(DDL)
  3. 【leetcode 简单】 第五十五题 打家劫舍
  4. showdialog 尝试读取或写入受保护的内存_?电脑组装内存要怎么选,安钛克KATANA RGB 内存超频实测...
  5. 总体方差的充分统计量_R方是否衡量预测能力或统计充分性?
  6. radio选中事件怎么绑定_Vue双向绑定
  7. C#函数学习及常用的类
  8. 2018年全国多校算法寒假训练营练习比赛(第一场)G 圆圈
  9. 双硬盘 双linux系统同时运行,XP与linux  双硬盘 双启动管理
  10. WebAPI HelpPage出现Failed to generate the sample for media type 'application/x-www-form-urlencoded'. 错
  11. word小技巧 将图片批量居中
  12. 学生专用计算机怎么没声音,班班通电脑没声音了
  13. ArcGIS 移动、旋转、比例缩放、复制工具
  14. java生气_Java来抢饭碗,C++可别生气
  15. 文本分类模型中的“蒸”功夫
  16. 【BlueZ】【蓝牙】跨平台实现Ble MasterSlaveMesh 之Linux篇-1
  17. win7系统如何查看自己电脑IP
  18. python| requests 访问 https网站
  19. Ubuntu 22.4网易云音乐启动失败处理方法
  20. AE二次开发中几个功能速成归纳(符号设计器、创建要素、图形编辑、属性表编辑、缓冲区分析)...

热门文章

  1. 【最全】ISTQB- FL模拟题(含答案)
  2. five 安卓应用|five 1.0.1 for android,Five小视频安卓版
  3. AWS免费套餐避坑攻略:查看账户下所有region的资源,及时关停不需要的服务
  4. 十六进制颜色值 (美观必备 - 设置颜色)
  5. 深入浅出自然语义处理原理并构建自然语义处理(NLP)模型GPT2
  6. matlab编写求解二阶常微分方程,求一个复杂的二阶常微分方程的数值解,不会写代码= =...
  7. ubuntu 黑体_Ubuntu 黑体解决方案
  8. 短信(SMS)的解释分类以及原理
  9. 推荐几个常用的 Chrome 扩展神器
  10. MySQL Deamon少量解读