script to check images
This commit is contained in:
parent
3d02fa146d
commit
d50e8a69b2
|
@ -0,0 +1,42 @@
|
|||
import os
|
||||
import argparse
|
||||
from PIL import Image
|
||||
from typing import Generator
|
||||
|
||||
SUPPORTED_EXT = [".jpg", ".png", ".jpeg", ".bmp", ".jfif", ".webp"]
|
||||
|
||||
def image_path_generator(image_dir: str, do_recurse: bool = True) -> Generator[str, None, None]:
|
||||
if do_recurse:
|
||||
for root, dirs, files in os.walk(image_dir):
|
||||
for file in files:
|
||||
if any(file.endswith(ext) for ext in SUPPORTED_EXT):
|
||||
yield os.path.join(root, file)
|
||||
else:
|
||||
for file in os.listdir(image_dir):
|
||||
if any(file.endswith(ext) for ext in SUPPORTED_EXT):
|
||||
yield os.path.join(image_dir, file)
|
||||
|
||||
def main(args):
|
||||
failed = []
|
||||
for path in image_path_generator(args.data_root, do_recurse=True):
|
||||
try:
|
||||
img = Image.open(path)
|
||||
print(f"Checked OK {img.size} {img.mode} {path}")
|
||||
except Exception as e:
|
||||
print(f"FAILED: {path}")
|
||||
failed.append((path,e))
|
||||
if not failed:
|
||||
print("No errors found")
|
||||
else:
|
||||
print(f" *************** Errors were found ***************")
|
||||
for path, e in failed:
|
||||
print(f"FAILED: {path} {e}")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print("This script checks that all images in a directory are valid.")
|
||||
print("If any errors occur, they will be printed out at the end.")
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--data_root', type=str, required=True, help='Path to the root of the dataset to check')
|
||||
args = parser.parse_args()
|
||||
main(args)
|
Loading…
Reference in New Issue