资讯专栏INFORMATION COLUMN

如何使用Python批量裁剪图片

89542767 / 591人阅读

  小编写这篇文章的主要目的,主要是给大家做出一个详细解答,解答关于使用Python批量裁剪图片的一些事宜,包括怎么样去提高自己的一个效率,具体的操作方法,下面小编就给大家详细的解答下。


  需求


  我的需求是批量裁剪某一文件夹下的所有图片,并指定裁剪宽高。


  思路


  1、先使用PIL.Image.size获取输入图片的宽高。


  2、宽高除以2得到中心点坐标


  3、根据指定宽高,以中心点向四周拓展


  4、调用PIL.Image.crop完成裁剪


  程序


  import os
  from PIL import Image
  def crop(input_img_path,output_img_path,crop_w,crop_h):
  image=Image.open(input_img_path)
  x_max=image.size[0]
  y_max=image.size[1]
  mid_point_x=int(x_max/2)
  mid_point_y=int(y_max/2)
  right=mid_point_x+int(crop_w/2)
  left=mid_point_x-int(crop_w/2)
  down=mid_point_y+int(crop_h/2)
  up=mid_point_y-int(crop_h/2)
  BOX_LEFT,BOX_UP,BOX_RIGHT,BOX_DOWN=left,up,right,down
  box=(BOX_LEFT,BOX_UP,BOX_RIGHT,BOX_DOWN)
  crop_img=image.crop(box)
  crop_img.save(output_img_path)
  if __name__=='__main__':
  dataset_dir="cut"#图片路径
  output_dir='out'#输出路径
  crop_w=300#裁剪图片宽
  crop_h=300#裁剪图片高
  #获得需要转化的图片路径并生成目标路径
  image_filenames=[(os.path.join(dataset_dir,x),os.path.join(output_dir,x))
  for x in os.listdir(dataset_dir)]
  #转化所有图片
  for path in image_filenames:
  crop(path[0],path[1],crop_w,crop_h)


  测试

  裁剪前:

01.png

  裁剪后:

02.png

  到此为止,这篇文章就给大家介绍到这里了,希望可以给大家带来更多的帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128243.html

相关文章

  • 10 行 Python 代码,批量压缩图片 500 张,简直太强大了

    摘要:这个网站非常良心,开放了免费的,取消了每张大小的限制,只限定每个月处理张图片。 showImg(https://segmentfault.com/img/remote/1460000019115596?w=4272&h=2848); 本文原创并首发于公众号【Python猫】,未经授权,请勿转载。原文地址:https://mp.weixin.qq.com/s/5hpFDgjCpfb0O1...

    Steven 评论0 收藏0
  • 15分钟破解网站验证码

    摘要:目前花费了两分钟。我这地方使用卷积神经网络,。这地方对卷积神经网络算法就不做详细介绍,感兴趣的同学,可以学习一下。 概述   很多开发者都讨厌网站的验证码,特别是写网络爬虫的程序员,而网站之所以设置验证码,是为了防止机器人访问网站,造成不必要的损失。现在好了,随着机器学习技术的发展,机器识别验证码的问题比较好解决了。 样本采集工具   这里我们采用wordpress的Really Si...

    hlcfan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<