图片大小,图片颜色空间,图片格式
from PIL import Image
img = Image.open('mei.jpg') # 打开图片
print(img.size,img.mode,img.format)
split方法将RGB模式的图片进行通道分离 分离通道之后图片模式均为L灰度模式
im = img.split()
print(im[0].mode)
im[0].show()
im[1].show()
im[2].show()
merge方法可以将分离的通道进行合并
img2 = Image.merge("RGB",(im[0],im[2],im[1]))
img2.show()
img3 = Image.merge("RGB",(im[1],im[0],im[2]))
img3.show()
获取图片的像素信息:getdata( )方法可获取像素数值,整个图像的像素以列表形式保存,而每个像素的RGB数值被保存在元组中
rgb_px= list(img.getdata())
print(rgb_px,len(rgb_px))
## 这个列表的长度是图片总像素值
resize调整图片尺寸
from PIL import Image
img = Image.open('mei.jpg').convert('L')
print(img.size,len(list(img.getdata())))
img_new = img.resize((300,300))
print(img_new.size,len(list(img_new.getdata())))
为图片添加若干白噪点
from PIL import Image
import random
img = Image.open('mei.jpg').convert('L') #打开图片并转为灰度模式
img_new = img.resize((600,600)) # 调整为300*300px
img_new_px = list(img_new.getdata()) #获取图片像素点
## 添加5000个白噪点
for i in range(5000):
n = random.randint(0,len(img_new_px))
img_new_px[n] = 255
img_new.show() #此时图片未改变
imn = Image.new(img_new.mode,img_new.size)
imn.putdata(data=img_new_px)
imn.show()