PIL:Python Imaging Library,是Python環(huán)境下最受歡迎的圖像處理庫(kù),木有之一。然而,在Python2.7之后不再支持。
好在又有了pillow!它派生于PIL,支持Python3,簡(jiǎn)單優(yōu)雅而功能強(qiáng)大,是圖像相關(guān)機(jī)器學(xué)習(xí)任務(wù)中算法工程師的親密合作伙伴。
下面我們將介紹pillow的16個(gè)圖片處理功能:
1, 圖片讀寫
2, 圖片與array互轉(zhuǎn)
3, 圖片與string互轉(zhuǎn)
4, 圖片由彩色轉(zhuǎn)灰度
5, 圖片通道分離與合并
6, 調(diào)整圖片尺寸
7, 截取圖片部分區(qū)域
8, 圖片旋轉(zhuǎn)
9, 圖片翻轉(zhuǎn)
10, 提取圖片邊緣
11, 圖片高斯模糊
12, 在圖片上繪制文字
13, 在圖片上繪制直線
14, 在圖片上繪制矩形
15, 在圖片上繪制橢圓
16, 在圖片上粘貼其他圖片
〇,安裝
安裝pillow非常簡(jiǎn)單。
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互轉(zhuǎn)
Image轉(zhuǎn)np.array
img = Image.open("./data/貓咪圖片.jpg")
arr = np.array(img)
print(arr.shape)
print(arr.dtype)
(641, 641, 3)
uint8
np.array轉(zhuǎn)Image
arr = (np.ones((256,256))*np.arange(0,256)).astype(np.uint8)
img = Image.fromarray(arr)
img

## 三,圖片與string互轉(zhuǎn)
Image轉(zhuǎn)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轉(zhuǎn)Image
b = base64.b64decode(s.encode("utf-8"))
buffer = BytesIO(b)
img = Image.open(buffer)
img
四,圖片由彩色轉(zhuǎn)灰度
# 轉(zhuǎn)成灰度
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])
六, 調(diào)整圖片尺寸
# 調(diào)整大小
img = Image.open("./data/貓咪圖片.jpg")
print(img.size)
img_resized = img.resize((300,300))
print(img_resized.size)
img_resized
(641, 641)
(300, 300)
七, 截取圖片部分區(qū)域
img = Image.open("./data/貓咪圖片.jpg")
img_croped = img.crop(box = [78,24,455,320])
print(img_croped.size)
img_croped
(377, 296)
-
圖像處理
+關(guān)注
關(guān)注
27文章
1315瀏覽量
57148 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8460瀏覽量
133436 -
python
+關(guān)注
關(guān)注
56文章
4813瀏覽量
85314
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【建議收藏】Python庫(kù)大全
Python基礎(chǔ)-圖像處理工具包
Python圖像處理庫(kù)Pillow入門教程和代碼資料免費(fèi)下載

Python教程之如何使用使用PIL庫(kù)做圖像處理的資料說(shuō)明

Python中最常用十大圖像處理庫(kù)詳細(xì)介紹
詳解Python中的Pandas和Numpy庫(kù)
分享5個(gè)用于圖像處理的Python庫(kù)

十個(gè)簡(jiǎn)單易懂最常用的 Python 圖像處理庫(kù)
關(guān)于python中非常實(shí)用的一個(gè)圖像處理庫(kù) 2
如何安裝常用Python庫(kù)
python讀取數(shù)據(jù)庫(kù)數(shù)據(jù) python查詢數(shù)據(jù)庫(kù) python數(shù)據(jù)庫(kù)連接
如何安裝Python圖像處理PIL庫(kù)

評(píng)論