python做图片裁剪

引言

         python切割图片有两种方法,分别是Pillow和OpenCV,因为我这部分的处理是基于我之前的python提取xml文件中的坐标点(labelimg标记文档)结果的前提下,将所有标注出来的小图都截取出来,labelimg标注的坐标格式跟pillow方法中的格式一致。因此本文基于Pillow的方法来截取小图。

代码

from PIL import Image
import os
img = Image.open("./blog.png")
print(img.size)
f = open('blog.txt')
k = 1
for line in f.readlines():
    # print(line.split(',')[0])
    x0 = int(line.split(',')[0])
    y0 = int(line.split(',')[1])
    x1 = int(line.split(',')[2])
    y1 = int(line.split(',')[3])
    cropped = img.crop((x0,y0,x1,y1))     # (left, upper, right, lower)
    # cropped = img.crop((line))  # (left, upper, right, lower)  # 直接放line,会报TypeError: type str doesn't define __round__ method

    dir = './cut_img/'+str(k) + '.png'
    cropped.save(dir)
    k += 1

f.close()

结果

         裁剪的图片如下图所示。
在这里插入图片描述
         有一点需要注意的是,一开始太懒想把从文件中读到的数据直接传入img.crop()中,结果就会报TypeError的问题。这是因为crop方法中读入的数据是4个int数字,而line是一个字符串,所以还是要先转型一下再传入函数中。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值