python处理图片基础用法

图片大小,图片颜色空间,图片格式

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()

python处理图片基础用法_第1张图片 python处理图片基础用法_第2张图片python处理图片基础用法_第3张图片

你可能感兴趣的:(python基础语法,python)