前言
最近需要对图片进行批量截取处理,所以写下来作为笔记
代码
对每张图片都需要点选然后截图
import matplotlib.pyplot as plt
import os
from PIL import Image
path = "D:\\NumericalModel\\changdi"
filelist = os.listdir(path) # 列举当前文件夹所有文件
for pictureName in filelist:
if pictureName[-3:] != "png":
continue #图片都是png格式,如果不是 跳过
newPath = path + "\\" + pictureName
im = Image.open(newPath)
plt.imshow(im, cmap = plt.get_cmap("gray"))
pos = plt.ginput(2) # 点选像素坐标 截取图片
cropped = im.crop((pos[0][0], pos[0][1], pos[1][0], pos[1][1]))
cropped.save("D:\\NumericalModel\\changdi\\new\\"+ pictureName ) #以原文件名保存到新的文件夹
如果处理要求很规范,每张图片只要固定位置的截图,可以先选好坐标:
import matplotlib.pyplot as plt
from PIL import Image
im = Image.open("/1.png")
plt.imshow(im, cmap = plt.get_cmap("gray"))
pos=plt.ginput(2)
print(pos)
cropped = im.crop((pos[0][0], pos[0][1], pos[1][0], pos[1][1])) # (left, upper, right, lower)
cropped.save("Desktop\\new\\2.png")
之后把输出的像素点坐标换到
cropped = im.crop((pos[0][0], pos[0][1], pos[1][0], pos[1][1]))
这行即可!