В этом примере кода утверждение в функции не выполняется.
from pathlib import Path
import numpy as np
import PIL.Image
def make_images(tmp_path):
np.random.seed(0)
shape = (4, 6, 3)
rgb = np.random.randint(0, 256, shape, dtype=np.uint8)
test_image = PIL.Image.fromarray(rgb)
image_path = tmp_path / 'test_image.jpg'
test_image.save(image_path)
return image_path, rgb
def test_Image_load_rgb(tmp_path):
image_path, original_rgb = make_images(tmp_path)
rgb2 = np.array(PIL.Image.open(image_path))
assert np.array_equal(rgb2, original_rgb)
if __name__ == '__main__':
test_Image_load_rgb(tmp_path)
Когда я смотрю на два массива, original_rgb
и rgb2
, они имеют разные значения, поэтому, конечно, это не получается, но я не понимаю, почему их массивы имеют разные значения.
Открытие их обоих как изображений с использованием PIL.Image.fromarray()
, визуально они выглядят похожими, но не одинаковыми, значения яркости слегка изменяются визуально.
Я не понимаю, почему это так.
Два изображения:
![test_image2.jpg](https://i.stack.imgur.com/Io3GA.png)
Примечание. Это не работает одинаково как для Pytest, так и когда запустить как скрипт.