Skip to content

Commit 7da21b7

Browse files
committed
use list_image_paths instead of ImageStreamer
1 parent fd6890d commit 7da21b7

File tree

3 files changed

+38
-82
lines changed

3 files changed

+38
-82
lines changed

predict.py

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,38 @@
11
import errno
22
from argparse import ArgumentParser, ArgumentTypeError
33
from pathlib import Path
4+
from typing import List, Union
45

56
import torch
7+
from PIL import Image, UnidentifiedImageError
68

79
from wpodnet import Predictor, load_wpodnet_from_checkpoint
8-
from wpodnet.stream import ImageStreamer
10+
11+
12+
def list_image_paths(p: Union[str, Path]) -> List[Path]:
13+
"""
14+
List all images in a directory.
15+
16+
Args:
17+
path (Union[str, Path]): The path to the directory containing images.
18+
19+
Returns:
20+
Generator[Image.Image]: A generator of PIL Image objects.
21+
"""
22+
p = Path(p)
23+
if not p.is_dir():
24+
raise FileNotFoundError(errno.ENOTDIR, "No such directory", args.save_annotated)
25+
26+
image_paths: List[Path] = []
27+
for f in p.glob("**/*"):
28+
try:
29+
with Image.open(f) as image:
30+
image.verify()
31+
image_paths.append(f)
32+
except UnidentifiedImageError:
33+
pass
34+
return image_paths
35+
936

1037
if __name__ == "__main__":
1138
parser = ArgumentParser()
@@ -56,8 +83,16 @@
5683

5784
predictor = Predictor(model)
5885

59-
streamer = ImageStreamer(args.source)
60-
for i, image in enumerate(streamer):
86+
source = Path(args.source)
87+
if source.is_file():
88+
image_paths = [source]
89+
elif source.is_dir():
90+
image_paths = list_image_paths(source)
91+
else:
92+
raise FileNotFoundError(errno.ENOENT, "No such file or directory", args.source)
93+
94+
for i, image_path in enumerate(image_paths):
95+
image = Image.open(image_path)
6196
prediction = predictor.predict(image, scaling_ratio=args.scale)
6297

6398
print(f"Prediction #{i}")

tests/wpodnet/stream/test_image_streamer.py

Lines changed: 0 additions & 43 deletions
This file was deleted.

wpodnet/stream.py

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)