当前位置:   article > 正文

python 批量截取图片 并保存原图片名_python批量截图

python批量截图

前言

最近需要对图片进行批量截取处理,所以写下来作为笔记

代码

(1)对每张图片都需要点选然后截图

import matplotlib.pyplot as plt
import  os
from PIL import Image
path = "./"
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("./"+ pictureName )  #以原文件名保存到新的文件夹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

(2)先手选一个截图范围 然后批量对所有图执行相同操作

import matplotlib.pyplot as plt
from PIL import Image
im = Image.open("??")
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("./??")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

完整代码:

import  os
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)

path = "./"
filelist = os.listdir(path)      # 列举当前文件夹所有文件
for pictureName in filelist:
    if pictureName[-3:] != "png":
        continue                  #图片都是png格式,如果不是 跳过
    newPath = path + "\\" + pictureName
    im = Image.open(newPath)
    cropped = im.crop((pos[0][0], pos[0][1], pos[1][0], pos[1][1]))  # (left, upper, right, lower)
    cropped.save("./"+ pictureName )  #以原文件名保存到新的文件夹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

(3)我就比较倒霉了 matlab的plotlib的老问题,前后端不能交互

那就手动指定位置呗 可以参考报错之后仍然会显示的灰度图 有一个所谓的坐标 自己设置 pos

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/77474
推荐阅读
相关标签
  

闽ICP备14008679号