python实现图像处理之PiL依赖库的案例应用详解

Python实现图像处理:PiL依赖库的应用

本文包含的练习题主要是PIL依赖库,即pillow相关的应用。

练习一:使用python给图片增加数字

实现思路:

  1. 使用PIL的Image.open导入图片。
  2. 获取图片的大小。
  3. 调用ImageDraw,在图片的指定位置写上数字。
#coding=utf-8
#Auther by Alice
#在图片的右上角增加一个数字

from PIL import Image,ImageFont,ImageDraw
image = Image.open('/Users/alice/Documents/Photo/IMG_8379.JPG')
#打开原图

wight, hight = image.size
text = "015"
color = (255,255,0)
fontsize = wight//10
font = ImageFont.truetype('Apple Symbols',fontsize)
#设定增加的数字的参数,数字内容、数字颜色和数字字号

draw = ImageDraw.Draw(image)
draw.text((fontsize*6,0), text, color, font)
image.save('/Users/alice/Documents/Photo/IMG_7997.JPG', 'jpeg')
#保存添加了数字之后的图片

实现前:

实现后:

修改其中两行代码字体和颜色如下后,

color = (105,200,45)
font = ImageFont.truetype('Palatino.ttc',fontsize)

则运行的结果为:

练习二:使用python将一个图片放大缩小

实现思路:

  1. 使用PIL,即Python图像标准依赖库。
  2. 使用open打开本地图片。
  3. 使用image.thumbnail放大缩小图片
#coding by alice
#coding=utf-8

from PIL import Image

im = Image.open('/Users/alice/Documents/Develop/PythonCode/test.JPG')
# 打开一个路径下的指定jpg图像文件
w,h = im.size
# 获得图像尺寸
im.thumbnail((w//10, h//10))
# 缩放到10%
im.save('/Users/alice/Documents/Develop/PythonCode/test2.JPG', 'jpeg')
# 把缩放后的图像用jpeg格式保存:

等同于代码:

#coding by alice
#coding=utf-8

from PIL import Image

image = Image.open('/Users/alice/Documents/Develop/PythonCode/test.JPG')
# 打开一个路径下的指定jpg图像文件
wight,hight = image.size
# 获得图像尺寸
image.thumbnail((weight//10, high//10))
# 缩放到10%
image.save('/Users/alice/Documents/Develop/PythonCode/test2.JPG', 'jpeg')
# 把缩放后的图像用jpg格式保存:

运行后的效果为:

练习三:使用python将一个图片实现模糊

实现思路:

  1. 使用PIL,即Python图像标准依赖库。
  2. 使用open打开本地图片。
  3. 使用image.thumbnail放大缩小图片
#coding by alice
#coding=utf-8

from PIL import Image
from PIL import ImageFilter

image = Image.open('/Users/alice/Documents/Develop/PythonCode/test.JPG')
# 打开一个路径下的jpg图像文件
image = image.filter(ImageFilter.BLUR)
# 应用模糊滤镜
image.save('/Users/alice/Documents/Develop/PythonCode/test3.JPG', 'jpeg')
#保存图片

运行后的结果为

如果是静物或者人脸,放大后看则模糊效果会更明显。

练习四:使用python获取一个图片的元素坐标

实现思路:

  1. 使用PIL,即Python图像标准依赖库。
  2. 使用open打开本地图片。
  3. 使用imshow显示图像
  4. 获取图片上点击光标,输出坐标
#coding by alice
#coding=utf-8

from PIL import Image
import matplotlib.pyplot as plt

image = Image.open('/Users/alice/Documents/Develop/PythonCode/test.JPG')
#打开所在位置及图像的名称
plt.figure('image')
#图像窗口名称
plt.imshow(image)
plt.show()

到此这篇关于python实现图像处理之PiL依赖库的案例应用详解的文章就介绍到这了,更多相关python实现图像处理之PiL依赖库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-07-19

理解python中装饰器的作用

装饰器的作用就是用一个新函数封装旧函数(是旧函数代码不变的情况下增加功能)然后会返回一个新函数,新函数就叫做装饰器,一般为了简化装饰器会用语法糖@新函数来简化 例子: 这是一段代码,但功能太少,要对这个进行增强,但又不能改变代码. def hello(): return "hello world!" 现在我们的需求是要增强hello()函数的功能,希望给返回加上HTML标签,比如<i>hello world</i>,但要求我们不得改变hello()函数原来的定义

Python爬虫之Scrapy环境搭建案例教程

Python爬虫之Scrapy环境搭建 如何搭建Scrapy环境 首先要安装Python环境,Python环境搭建见:https://blog.csdn.net/alice_tl/article/details/76793590 接下来安装Scrapy 1.安装Scrapy,在终端使用pip install Scrapy(注意最好是国外的环境) 进度提示如下: alicedeMacBook-Pro:~ alice$ pip install Scrapy Collecting Scrapy Usi

python中Task封装协程的知识点总结

说明 1.Task是Future的子类,Task是对协程的封装,我们把多个Task放在循环调度列表中,等待调度执行. 2.Task对象可以跟踪任务和状态.Future(Task是Futrue的子类)为我们提供了异步编程中最终结果的处理(Task类还具有状态处理功能). 3.把协程封装成Task,加入一个队列等待调用.刚创建Task的时候不执行,遇到await就执行. 实例 import asyncio async def func(): print(1) await asyncio.sleep(

python openvc 裁剪、剪切图片 提取图片的行和列

python openvc 裁剪图片 下面是4个坐标代码: import cv2 #裁剪图片路径input_path,四个裁剪坐标为:y1,y2,x1,x2,保存剪裁后的图片路径output_path def cut_img(input_path,y1,y2,x1,x2,output_path): #读图片cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道 img = cv2.imread(input_path,cv2.IMREAD_UNCHANGED) #剪裁图片img

python之OpenCV的作用以及安装案例教程

OpenCV的作用及安装 OpenCV简介 OpenCV是一个开源的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.提供了Python.Ruby.MATLAB等语言的接口,并且实现了图像处理和计算机视觉方面的很多通用算法,可以给开发者调用. OpenCV应用领域 计算机视觉领域方向 人机互动 物体识别 图像分割 人脸识别 动作识别 运动跟踪 机器人 运动分析 机器视觉 结构分析 汽车安全驾驶 OpenCV涉及的技术 图像数据的操作: 分配.释放.

Python中return用法案例详解

python中return的用法 1.return语句就是把执行结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return. 例如: def haha(x,y): if x==y: return x,y print(haha(1,1)) 已改正: 结果:这种return传参会返回元组(1, 1) 2.但是也并不意味着一个函数体中只能有一个return 语句,例如: def test_return(x): if x >

Python基础之标准库和常用的第三方库案例教程

Python基础:标准库和常用的第三方库 Python的标准库有: 名称 作用 datetime 为日期和时间处理同时提供了简单和复杂的方法. zlib 直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile. random 提供了生成随机数的工具. math 为浮点运算提供了对底层C函数库的访问. sys 工具脚本经常调用命令行参数.这些命令行参数以链表形式存储于 sys 模块的 argv 变量. glob 提供了一个函数用于从目录通配符搜索中生成文

Python爬虫中urllib3与urllib的区别是什么

目录 urllib库 urllib.request模块 Request对象 1 . 请求头添加 2. 操作cookie 3. 设置代理 urllib.parse模块 urllib.error模块 urllib.robotparse模块 网络库urllib3 网络请求 GET请求 POST请求 HTTP响应头 上传文件 超时处理 urllib库 urllib 是一个用来处理网络请求的python标准库,它包含4个模块. urllib.request---请求模块,用于发起网络请求 urllib.p

python Django框架快速入门教程(后台管理)

Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django 是一个开放源代码的 Web 应用框架,由 Python 写成. Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 . Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template). 参考官方文档:Django官方文档https:

Yii2框架制作RESTful风格的API快速入门教程

先给大家说下什么是REST restful REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一. 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.性能好.适宜通信的架构.REST指的是一组架构约束条件和原则." 如

Python 数据处理库 pandas 入门教程基本操作

pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有表现力的数据结构,目的是使"关系"或"标记"数据的工作既简单又直观.它旨在成为在Python中进行实际数据分析的高级构建块. 入门介绍 pandas适合于许多不同类型的数据,包括: 具有异构类型列的表格数据,例如SQL表格或Excel数据 有序和无序(不一定是固定频率)时间序列数据.

jQuery Easyui快速入门教程

1.什么是JQuery EasyUI jQuery EasyUI是一组基于JQuery的UI插件集合,而JQueryEasyUI的目标就是帮助开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的JavaScript,也不需要对css样式有深入的了解,开发者需要了解的只是一些简单的html标签. 2.学习jQuery EasyUI的条件 因为JQueryEasyUI是基于jQuery的UI库,所以,必须需要JQuery课程的基础. 3.JQuery EasyUI的特点 基于JQu

OpenStack云计算快速入门教程(1)之OpenStack及其构成简介

该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装.我是五岳之巅,翻译中多采用意译法,所以个别词与原版有出入,请大家谅解.我不是英语专业,我觉着搞技术最重要的就是理解,而不是四级和考研中那烦人的英译汉,所以我的目标是忠于原意.通俗表达,Over.英文原文在这里(http://docs.openstack.org/es@***/openstack-compute/starter/content/ ,请将ex@***中的@去掉,CU屏蔽的F词),下面步入正题: 第

ReactJs快速入门教程(精华版)

现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领略ReactJs的风采吧~~ 文章有点长,耐心读完,你会有很大收获哦~   一.ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出来以后,发现这套东西

基于Bootstrap框架菜鸟入门教程(推荐)

Bootstrap菜鸟入门教程 Bootstrap简介 Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. 一.栅格系统 栅格系统的工作原理: "行(row)"必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding). 通过"行(ro

Vue.js快速入门教程

像AngularJS这种前端框架可以让我们非常方便地开发出强大的单页应用,然而有时候Angular这种大型框架对于我们的项目来说过于庞大,很多功能不一定会用到.这时候我们就需要评估一下使用它的必要性了.如果我们仅仅需要在一个简单的网页里添加屈指可数的几个功能,那么用Angular就太麻烦了,必要的安装.配置.编写路由和设计控制器等等工作显得过于繁琐. 这时候我们需要一个更加轻量级的解决方案.Vue.js就是一个不错的选择.Vue.js是一个专注于视图模型(ViewModal)的框架.视图模型是U

Python Django的安装配置教程图文详解

Django 教程 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 . Django采用了MVC的软件设计模式,即模型M,视图V和控制器C. 学习Django前,我们要确定电脑上是否已经安装了Python,目前Python有两个版本,不过这两个版

Python django框架开发发布会签到系统(web开发)

引言 最近学习了虫师的发布会签到系统demo,结合自己所学django知识,对demo重新塑造了一下.也是为了练练手,巩固知识.现在就分享一下成果~ Django工作流 学习django web开发,先来简单了解一下django的工作机制,请看下图: 简单说明: 用户通过浏览器访问:http://127.0.0.1:8000/index,首先运行的是urlpatterns程序,通过url路由找到对应的视图函数views.py,视图函数处理所有逻辑和数据,并且将用户要的数据经过函数处理后通过ind

Vue.js 60分钟快速入门教程

vuejs是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使用Vue.js. 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动的,你无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和数据绑定起来.一旦你创建了绑定,DOM将和数据保持同步,每当变更了数据,DOM也会相应地更新. 当