| import cv2 |
| import os |
| import os.path as osp |
| from pathlib import Path |
|
|
| class ImageCache: |
| data = {} |
|
|
| def get_image(name, to_rgb=False): |
| key = (name, to_rgb) |
| if key in ImageCache.data: |
| return ImageCache.data[key] |
| images_dir = osp.join(Path(__file__).parent.absolute(), 'images') |
| ext_names = ['.jpg', '.png', '.jpeg'] |
| image_file = None |
| for ext_name in ext_names: |
| _image_file = osp.join(images_dir, "%s%s"%(name, ext_name)) |
| if osp.exists(_image_file): |
| image_file = _image_file |
| break |
| assert image_file is not None, '%s not found'%name |
| img = cv2.imread(image_file) |
| if to_rgb: |
| img = img[:,:,::-1] |
| ImageCache.data[key] = img |
| return img |
|
|
|
|