使用PIL简单的操作图片

在PIL中,常使用Image类来进行图片操作

图片读取

使用Image类中的open(fp,mode="r")来读取图片

from PIL import ImageFilter,Image

image = Image.open(pic_path)

           

image有三个比较重要的属性:

  • format:图像的格式,常见的"JPG","PNG"等,本例 JPEG
  • size :返回一个tuple对象,(width,height ) ,本例(600,405)
  • mode:为图像的像素格式,常见的有“RGB”和“L”(灰度)。本例 RGB

图像的保存

 使用Image类对象时,可以快速的保存图片

image.save("image/save.jpg")

图像的展示

image.show()

图像的大小调整

当我们遇到大小不称心的图片时,我们可以利用resize((weight,height))来解决问题

image.resize((100,100))
                

图像的裁剪

使用image类的crop((x0,y0,x1,y1))可以达到裁剪的效果

crop = image.crop((100,100,300,300))

            

图像的旋转

可以使用image类的rotate(α,expand=False) (α可以是弧度,也可以是角度)来旋转图像

rotate = image.rotate(30)
rotate1 = image.rotate(-30,expand = True)#这会使图片不被裁剪

        

可以从图片观察到,第一张图片损失了图片上的一些有效部分,第二张没有损失掉,原因就是在expand=true

图片的翻转

图片的镜面翻转可以通过transpose来解决

#Image.FLIP_LEFT_RIGHT或者Image.FLIP_TOP_BOTTOM,第一个是水平翻转,第二个是垂直翻转。

trans = image.transpose(Image.FLIP_LEFT_RIGHT)
trans1 = image.transpose(Image.FLIP_TOP_BOTTOM)

           

图片通道

彩色图片->灰色

image = image.convert('L')

分离三通道,可以得到rgb每个通道的像素值

r,g,b = image.split()

合并三通道

image = image.merge('RGB',(r,g,b))

一些其他的用法

image.filter(ImageFilter.GaussianBlur)
# 普通模糊
image.filter(ImageFilter.BLUR)
# 边缘增强
image.filter(ImageFilter.EDGE_ENHANCE)
# 找到边缘
image.filter(ImageFilter.FIND_EDGES)
# 浮雕
image.filter(ImageFilter.EMBOSS)
# 轮廓
image.filter(ImageFilter.CONTOUR)
# 锐化
image.filter(ImageFilter.SHARPEN).save('SHARPEN.jpg')
# 平滑
image.filter(ImageFilter.SMOOTH).save('SMOOTH.jpg')
# 细节
image.filter(ImageFilter.DETAIL).save('DETAIL.jpg')
                                              



  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值