【Python学习】 - PIL - 各种图像操作
官方文檔:http://effbot.org/imagingbook/image.htm
1.打開(kāi)圖像并顯示(注意這樣show的話,會(huì)生成本地文件的):
img=Image.open('1.jpg')img.show()?
2.轉(zhuǎn)8位灰度圖
greyimg=img.convert('L') greyimg.show()?
3.獲取圖片某一像素點(diǎn)的 (R,G,B)值
from PIL import Image ?imagepath='1.jpg' ? img = Image.open(imagepath) ? if img.mode not in ('L', 'RGB'): ?img = img.convert('RGB') ? r, g, b = img.getpixel((10, 10)) ?4.從圖像中隨機(jī)截取一部分
crop() : 從圖像中提取出某個(gè)矩形大小的圖像。它接收一個(gè)四元素的元組作為參數(shù),各元素為(left, upper, right, lower),坐標(biāo)系統(tǒng)的原點(diǎn)(0, 0)是左上角。
leftupx=random.randint(0,img.size[0]-64-1) leftupy= random.randint(0,img.size[1]-128-1) img1=img.crop((leftupx,leftupy,leftupx+64,leftupy+128))5.保存圖像
im.save("2.jpg")?
6.PIL中的Image和numpy中的數(shù)組array相互轉(zhuǎn)換
?
image轉(zhuǎn)換成array
img=np.array(image)
array轉(zhuǎn)換成image
注意img必須強(qiáng)轉(zhuǎn)成uint8類型!如果是uint16的矩陣而不轉(zhuǎn)為uint8的話,Image.fromarray這句會(huì)報(bào)錯(cuò)
from PIL import Imageim_arr = Image.fromarray(np.uint8(img))7.修改圖像大小
im.resize(size, filter) ? image
返回圖像的調(diào)整大小的副本。size參數(shù)以像素為單位給出請(qǐng)求的大小,作為2元組:(寬、高)。
The filter argument can be one of NEAREST (use nearest neighbour), BILINEAR (linear interpolation in a 2x2 environment), BICUBIC (cubic spline interpolation in a 4x4 environment), or ANTIALIAS (a high-quality downsampling filter). If omitted, or if the image has mode “1” or “P”, it is set to NEAREST.
濾波器參數(shù)可以是最接近的(使用最近鄰)、雙線性(在2x2環(huán)境中進(jìn)行線性插值)、雙三次樣條(在4x4環(huán)境中進(jìn)行三次樣條插值)或反鋸齒(高質(zhì)量的下采樣濾波器)。如果省略,或者圖像模式為“1”或“P”,則將其設(shè)置為最接近的模式。
Note that the bilinear and bicubic filters in the current version of PIL are not well-suited for large downsampling ratios (e.g. when creating thumbnails). You should use ANTIALIAS unless speed is much more important than quality.
請(qǐng)注意,當(dāng)前版本的公益訴訟的雙線性和雙三次濾波器不適用于大的下采樣率(例如,創(chuàng)建縮略圖時(shí))。除非速度比質(zhì)量更重要,否則應(yīng)該使用反鋸齒。
(總之一般情況下第二個(gè)參數(shù)使用默認(rèn)就好)
比如要將圖片修改成64*64的 im = im.resize(64,64)8.復(fù)制圖片
im = Image.open('1.jpg')im2 = im.copy()9.添加水印,疊加函數(shù),拼接圖像
基于keras中的PIL中的paste()函數(shù)可以給圖片添加水印,也可以疊加函數(shù),拼接圖像,做到多張圖片結(jié)果的可視化。
https://blog.csdn.net/s411081123/article/details/86255688
10.更多操作
https://www.cnblogs.com/meitian/p/3699223.html
?
部分內(nèi)容選自:傳送門
?
https://www.sohu.com/a/328328613_571478
總結(jié)
以上是生活随笔為你收集整理的【Python学习】 - PIL - 各种图像操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《女神异闻录5》粉丝杂志创始人太离谱:挪
- 下一篇: 影像脱胎换骨 曝Redmi要用旗舰大底主