通过Pillow库实现图片按比例剪裁以及tqdm库可视化运行进程

最近在利用paddle的开源模型实现对图片内容的推理。但是由于部分图片过大,导致识别精度下降。根据初步实验结果,发现图片中后部分的信息都没有用,于是想到用Pillow库对图片进行裁剪,从而降低图片大小。

导入Pillow库及其他相关库

from PIL import Image
import os
import glob
from tqdm import tqdm

这边注意一下,Pillow目前最新的版本是10.0.0,如果要用resize对图片进行缩放并进重采样,一些功能已经更新了,请及时查看Pillow官方文档:https://www.osgeo.cn/pillow/ 

获取图片列表

pic_lst = [] #图片名列表
d_path = 'C:/Users/Lenovo/Desktop/group1' #图片位置
new_path = 'C:/Users/Lenovo/Desktop/result' #处理后图片的位置
os.chdir(d_path)
pic_lst.extend(glob.glob(f'*.png'))

裁剪图片并保存

裁剪图片利用的是crop方法,用法是:Image.crop(box=None)。box -- 裁剪矩形,作为(左、上、右、下)元组。坐标系原点是图片的最左上角。通过对比发现,我只需要图片的前面80%即可,所以 box = (0,0,pic.width,int(pic.height*0.8))。另外如果图片的高度小于2000px的话,模型推理精度是可以的,我选择不裁剪。

# 逐一处理每个图片
for i in tqdm(pic_lst):
path = d_path + '/' + i
pic = Image.open(path)
new_path_1 = new_path + '/' + i
if pic.height > 2000:
box = (0,0,pic.width,int(pic.height*0.8))
new_pic = pic.crop(box)
new_pic.save(new_path_1)
else:
pic.save(new_path_1)
print('end!')

运行,查看结果

我在处理批量数据的时候习惯使用tqdm这个库,方便可视化处理过程。图片裁剪成功!

图片处理过程

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇