目录
PIL安装
PIL、Pillow安装使用方法_AI视觉网奇的博客-优快云博客
图片拷贝:
from PIL import Image
im1 = Image.open("jing.jpg")
im2 = im1.copy()
im2.save("he.jpg")
图片裁剪
from PIL import Image
im1 = Image.open("1.jpg")
region = (50,50,100,100) #裁切图片
cropImg = im1.crop(region)
cropImg.show()
im1.show()
图像缩放:
在pillow中图片的缩放有两种方式,1.使用resize函数,2,使用thumbnail函数
resize函数可以缩小,也可以放大
thumbnail只能缩小,不能放大
所以,如果你只打开一次图片,要存出多个尺寸的话,要么,从大到小开始缩放。
要么,使用resize.建议从大到小开始缩放,因为,使用resize放大的话,你可以想象那个马赛克。当然,你也可以设置缩放图片的质量( PIL.Image.NEAREST:最低质量, PIL.Image.BILINEAR:双线性,
下面,介绍一个简单的实际应用---多种尺寸icon的存储:
# -*- coding: utf-8 -*-
import os,sys
from PIL import Image
image_size = [512,256,144,140,128,120,108,100,88,72,48,32,28]
def create_icon():
for size in image_size:
'''''pri_image = Image.open("icon.png")
pri_image.thumbnail((size,size))
image_name = "icon_%d.png"%(size)
pri_image.save(image_name)'''
pri_image = Image.open("icon.png")
pri_image.resize((size,size),Image.ANTIALIAS ).save("icom_%d.png"%(size))
if __name__ == "__main__":
create_icon()
在使用PIL image处理图像要获取高质量的关键地方是下面两点: 处理时要用 ANTIALIAS; 保存时是要设置 quality;
在python ide 可以这样处理:
im.resize(box, Image.ANTIALIAS)
im.save(path, 'JPEG', quality = 95)
opencv转pil,pytorch预处理:
opencv是以bgr格式读取的,转为pil后,也是bgr格式,pil显示会不正常。
import cv2
from PIL import Image
from torchvision import transforms
if __name__ == '__main__':
img_o=cv2.imread(r'F:\project\shida\small\imgs\0a82210d-6155-4627-af8c-931a60fd6fd1_0_10_0.jpg')
img=Image.fromarray(img_o)
img.show()
cv2.imshow('img', img_o)
cv2.waitKey()
transform_val_list = transforms.Compose([transforms.ToTensor()])
img = transform_val_list(img)
print(img[0][:10])
img = transform_val_list(img_o)
print(img[0][:10])