小编写这篇文章的主要目的,主要是给大家做出一个详细解答,解答关于使用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)
测试
裁剪前:
裁剪后:
到此为止,这篇文章就给大家介绍到这里了,希望可以给大家带来更多的帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128243.html
摘要:这个网站非常良心,开放了免费的,取消了每张大小的限制,只限定每个月处理张图片。 showImg(https://segmentfault.com/img/remote/1460000019115596?w=4272&h=2848); 本文原创并首发于公众号【Python猫】,未经授权,请勿转载。原文地址:https://mp.weixin.qq.com/s/5hpFDgjCpfb0O1...
摘要:目前花费了两分钟。我这地方使用卷积神经网络,。这地方对卷积神经网络算法就不做详细介绍,感兴趣的同学,可以学习一下。 概述 很多开发者都讨厌网站的验证码,特别是写网络爬虫的程序员,而网站之所以设置验证码,是为了防止机器人访问网站,造成不必要的损失。现在好了,随着机器学习技术的发展,机器识别验证码的问题比较好解决了。 样本采集工具 这里我们采用wordpress的Really Si...
阅读 911·2023-01-14 11:38
阅读 878·2023-01-14 11:04
阅读 740·2023-01-14 10:48
阅读 1982·2023-01-14 10:34
阅读 942·2023-01-14 10:24
阅读 819·2023-01-14 10:18
阅读 499·2023-01-14 10:09
阅读 572·2023-01-14 10:02