24 lines
665 B
Python
24 lines
665 B
Python
from typing import Iterable
|
|
|
|
import numpy as np
|
|
from PIL import Image
|
|
from frozendict import frozendict
|
|
|
|
from image_prediction.estimator.preprocessor.utils import image_to_normalized_tensor
|
|
|
|
|
|
def transform_equal(a, b):
|
|
return (list(a) if isinstance(a, map) else a) == b
|
|
|
|
|
|
def images_equal(im1: Image, im2: Image, **kwargs):
|
|
return np.allclose(image_to_normalized_tensor(im1), image_to_normalized_tensor(im2), **kwargs)
|
|
|
|
|
|
def metadata_equal(mdat1: Iterable, mdat2: Iterable):
|
|
return set(map(frozendict, mdat1)) == set(map(frozendict, mdat2))
|
|
|
|
|
|
def image_sets_equal(ims1, ims2):
|
|
return all(any(images_equal(im1, im2) for im2 in ims2) for im1 in ims1)
|