0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于python中非常实用的一个图像处理库 1

jf_78858299 来源:算法美食屋 作者:梁云1991 2023-02-08 17:18 次阅读

PIL:Python Imaging Library,是Python环境下最受欢迎的图像处理库,木有之一。然而,在Python2.7之后不再支持。

好在又有了pillow!它派生于PIL,支持Python3,简单优雅而功能强大,是图像相关机器学习任务中算法工程师的亲密合作伙伴。

下面我们将介绍pillow的16个图片处理功能:

1, 图片读写

2, 图片与array互转

3, 图片与string互转

4, 图片由彩色转灰度

5, 图片通道分离与合并

6, 调整图片尺寸

7, 截取图片部分区域

8, 图片旋转

9, 图片翻转

10, 提取图片边缘

11, 图片高斯模糊

12, 在图片上绘制文字

13, 在图片上绘制直线

14, 在图片上绘制矩形

15, 在图片上绘制椭圆

16, 在图片上粘贴其他图片

〇,安装

安装pillow非常简单。

pip install pillow

一,图片读写

import numpy as np 
from PIL import Image,ImageFilter,ImageDraw,ImageFont
# 读取图片
img = Image.open("./data/猫咪图片.jpg")
print(img.format, img.size, img.mode)
print(img.info)
img
JPEG (641, 641) RGB
{'jfif': 257, 'jfif_version': (1, 1), 'dpi': (72, 72), 'jfif_unit': 1, 'jfif_density': (72, 72)}

保存图片

img.save("./data/猫咪图片.png")

## 二,图片与array互转

Image转np.array

img = Image.open("./data/猫咪图片.jpg")

arr = np.array(img)

print(arr.shape)

print(arr.dtype)


(641, 641, 3)

uint8


np.array转Image

arr = (np.ones((256,256))*np.arange(0,256)).astype(np.uint8)

img = Image.fromarray(arr)

img

![图片](https://mmbiz.qpic.cn/mmbiz_png/4WgILHBwVHibuic4uM4wdMZ6sEA6Hs2B0eJ7Tq6y9TsNCNXAmlEavy1jsvgGbfcVGMNCkRR9VymibiaUHAfk6rF2FQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1)

## 三,图片与string互转

Image转string

import base64

from io import BytesIO

img = Image.open("./data/猫咪图片.jpg")

buffer = BytesIO()

img.save(buffer, 'PNG')

b = buffer.getvalue()

s = base64.b64encode(b).decode("utf-8")

print(s[0:1000])

iVBORw0KGgoAAAANSUhEUgAAAoEAAAKBCAIAAACnMebvAAEAAElEQVR4nOz96bMtSXIfiLl7ROR2lru+raqrqxsEQBAkRuKMRHI0kj6OSTLJ9M+KRumTTJwxyWZGJm6DIQguAHqp7lree3c5S2ZGhLs+eIbfOOe+V13dKGxjCHt27b5z82RGRnj4z3fHT69fJB3CiEhEDCIi5H1KKQt775umEYRpmsZx/PGnn3Vd94tf/OLu7u7y8lJExnG8uro6Ho/ee+ccMwNA13UXFxebzeZnP/uZcw4R53k+Ho/TNIkIIiIiMxMREaWUcs6bzebm5mae5/1+H2NsmiaEkHOe55mZvfcAkFKa5xkA9OL1er3ebv/oj/7IOSciOUbv/cPDAwr0fb/uh5ubmxDCeDgi4vF4/NnPfjYHBAAsQ38HgJxzSklEiAgARKRt22EYmqaZpul4PM7zbDMXEfgbMnSqurP2EwDGcaz/axf/DXq1aZq6rgMAEfmd3/mdm5ubn/3sZz//+c9TSgCgJCEiIYS+7+d5nqYp5+y9R8Scs4g45z5287NdtrUaOdknKICIZNfI8tOWlABczuv1uuu6lNI0TXo6mFkncHZ/AEhxdM7ps5TenHPOuZTSarXquo6Z7eAw80wZAHJMMUZP5L3PMY2Ho3Nuu1oPfS8iHJOIcMoxRiYnIjlnvQ8UCsk5O+dCCCEEXRb9PMWdnt+cc4wx50xEeuXxeBSRYRj6vnfO6XmJhwcqQ99UxzAMIqK/1y8ukpUVzPOsR7tt26ZphmGwZdEn6jQaDHoHRBTCnPM4juM89X2/Px6dcxcXF74JMcYQwna7TeCULyknSSkhovfezoWus1F+hFnXvGmapml0bjlnKIxCr0TEEIL3fjelpml0xexk7ff74/GoX1TmZqv9W3/3d66vr5l5HMfNsOr7npkJMMYoOSsnzjEpt5znOca42+2Ucg6HwzzPV1dXn3766YsXL0IIXdc1TQMA8zyP4xhj
# string转Image 

b = base64.b64decode(s.encode("utf-8")) 
buffer = BytesIO(b) 
img = Image.open(buffer)
img

四,图片由彩色转灰度

# 转成灰度
img = Image.open("./data/猫咪图片.jpg")
img.convert("L")

五,图片通道分离与合并

# 分离通道
img = Image.open("./data/猫咪图片.jpg")
r,g,b = img.split() 
b
# 合并通道
Image.merge(mode = "RGBA", bands = [r,g,b,r])

六, 调整图片尺寸

# 调整大小
img = Image.open("./data/猫咪图片.jpg")
print(img.size)
img_resized = img.resize((300,300))
print(img_resized.size)
img_resized
(641, 641)
(300, 300)

七, 截取图片部分区域

img = Image.open("./data/猫咪图片.jpg")
img_croped = img.crop(box = [78,24,455,320]) 
print(img_croped.size)
img_croped
(377, 296)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    27

    文章

    1281

    浏览量

    56638
  • 机器学习
    +关注

    关注

    66

    文章

    8377

    浏览量

    132407
  • python
    +关注

    关注

    56

    文章

    4782

    浏览量

    84453
收藏 人收藏

    评论

    相关推荐

    常用的Python图像处理介绍

    本文主要介绍了些简单易懂最常用的 Python 图像处理
    的头像 发表于 08-19 10:54 1978次阅读

    【建议收藏】Python大全

    照相机、图像处理、特征提取、格式转换的简介,可读性强的接口(基于OpenCV)。1.DjangoFlask是轻量级的Web应用框架,使用
    发表于 09-06 15:58

    Python基础-图像处理工具包

    增强,直方图处理,插值和滤波等 等。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它
    发表于 03-30 14:09 17次下载

    Python图像处理Pillow入门教程和代码资料免费下载

    Pillow 是Python 里的图像处理(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的
    发表于 01-11 16:20 30次下载
    <b class='flag-5'>Python</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b><b class='flag-5'>库</b>Pillow入门教程和代码资料免费下载

    Python教程之如何使用使用PIL图像处理的资料说明

    图像处理门应用非常广的技术,而拥有非常丰富第三方扩展
    发表于 01-18 17:01 15次下载
    <b class='flag-5'>Python</b>教程之如何使用使用PIL<b class='flag-5'>库</b>做<b class='flag-5'>图像</b><b class='flag-5'>处理</b>的资料说明

    Python中最常用十大图像处理详细介绍

    本文主要介绍了些简单易懂最常用的Python图像处理当今世界充满了各种数据,而图像是其中高的
    的头像 发表于 07-06 11:08 2.2w次阅读

    详解Python中的Pandas和Numpy

    pandas、numpy是Python数据科学中非常常用的,numpy是Python的数值计算扩展,专门用来处理矩阵,它的运算效率比列表更
    的头像 发表于 05-25 12:49 2514次阅读

    分享5用于图像处理Python

    提取特征。 在今天的文章中,我们将介绍5最好的Python,它们可能会帮助你执行图像处理,如裁剪、缩放等。
    的头像 发表于 02-08 16:23 1320次阅读
    分享5<b class='flag-5'>个</b>用于<b class='flag-5'>图像</b><b class='flag-5'>处理</b>的<b class='flag-5'>Python</b><b class='flag-5'>库</b>

    简单易懂最常用的 Python 图像处理

    本文主要介绍了些简单易懂最常用的 Python 图像处理。 当今世界充满了各种数据,而图像
    的头像 发表于 02-08 16:59 803次阅读

    关于python中非常实用的图像处理 2

    PIL:Python Imaging Library,是Python环境下最受欢迎的图像处理,木有之
    的头像 发表于 02-08 17:18 1072次阅读

    如何安装常用Python

    Python作为种流行的编程语言,拥有丰富的第三方资源,这些可以帮助开发者轻松实现各种功能,从数据分析到Web开发,从机器学习到图像
    的头像 发表于 04-14 12:11 1128次阅读

    python读取数据数据 python查询数据 python数据连接

    python读取数据数据 python查询数据 python数据连接
    的头像 发表于 08-28 17:09 1755次阅读

    如何安装Python图像处理PIL

    载Pillow源码包,解压后,在终端或命令行中进入源码目录,输入以下代码: python setup.py install 注意:Pillow是PIL分支,它是更加活跃和完善的
    的头像 发表于 09-12 17:15 2594次阅读
    如何安装<b class='flag-5'>Python</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b>PIL<b class='flag-5'>库</b>

    python输出list的每一个元素

    Python种简单易学的编程语言,广泛应用于各个领域中。而处理列表(list)是Python中非常常见的操作之
    的头像 发表于 11-21 16:16 1502次阅读

    使用Python进行图像处理

    下面是关于使用Python在几行代码中分析城市轮廓线的快速教程。
    的头像 发表于 11-07 10:14 140次阅读
    使用<b class='flag-5'>Python</b>进行<b class='flag-5'>图像</b><b class='flag-5'>处理</b>