视觉工具集

一些用于快速下载、检查和预处理图片(调整大小)的工具函数

源代码

download_images

 download_images (dest, url_file=None, urls=None, max_pics=1000,
                  n_workers=8, timeout=4, preserve_filename=False)

下载文本文件 url_file 中列出的图片到路径 dest,最多下载 max_pics


源代码

resize_to

 resize_to (img, targ_sz, use_min=False)

按相同宽高比调整大小,以达到 targ_sz,采用 PIL 坐标 (即 宽*高)

class _FakeImg():
    def __init__(self, size): self.size=size

img = _FakeImg((200,500))
test_eq(resize_to(img, 400), [160,400])
test_eq(resize_to(img, 400, use_min=True), [400,1000])

源代码

verify_image

 verify_image (fn)

确认 fn 文件可以打开


源代码

verify_images

 verify_images (fns)

查找 fns 中无法打开的图片


源代码

resize_image

 resize_image (file, dest, src='.', max_size=None, n_channels=3, ext=None,
               img_format=None, resample=<Resampling.BILINEAR: 2>,
               resume=False, **kwargs)

将文件调整大小并保存到 dest,最大尺寸为 max_size

file = 'puppy.jpg'
dest = Path('.')
resize_image(file, dest, src='images', max_size=400)
im = Image.open(dest/file)
test_eq(im.shape[1],400)
(dest/file).unlink()
file = 'puppy.jpg'
dest = Path('images')
resize_image(file, dest, src=dest, max_size=None)

源代码

resize_images

 resize_images (path, max_workers=4, max_size=None, recurse=False,
                dest=Path('.'), n_channels=3, ext=None, img_format=None,
                resample=<Resampling.BILINEAR: 2>, resume=None, **kwargs)

递归地调整路径下文件大小并保存到 dest,最大尺寸为 max_size

with tempfile.TemporaryDirectory() as d:
    dest = Path(d)/'resized_images'
    resize_images('images', max_size=100, dest=dest, max_workers=0, recurse=True)