mirror of
https://github.com/qurator-spk/eynollah.git
synced 2026-08-09 04:12:42 +02:00
109 lines
3.5 KiB
Python
109 lines
3.5 KiB
Python
|
|
import pytest
|
||
|
|
import cv2
|
||
|
|
import numpy as np
|
||
|
|
from matplotlib import pyplot as plt
|
||
|
|
|
||
|
|
from eynollah.utils.tiling import do_prediction, do_prediction_new_concept
|
||
|
|
|
||
|
|
@pytest.mark.parametrize(
|
||
|
|
"height,width",
|
||
|
|
[
|
||
|
|
(448, 448),
|
||
|
|
(672, 672),
|
||
|
|
(1088, 832),
|
||
|
|
(1152, 896),
|
||
|
|
])
|
||
|
|
def test_tiling_idem(image_resources, height, width):
|
||
|
|
infile = image_resources[0]
|
||
|
|
class PseudoModel:
|
||
|
|
def predict(self, images, **kwargs):
|
||
|
|
return images
|
||
|
|
@property
|
||
|
|
def input_shape(self):
|
||
|
|
return None, height, width, None
|
||
|
|
model = PseudoModel()
|
||
|
|
in_img = cv2.imread(infile)
|
||
|
|
outimg = do_prediction(in_img, model, patches=True, is_enhancement=True,
|
||
|
|
marginal_of_patch_percent=0)
|
||
|
|
assert in_img.shape == outimg.shape
|
||
|
|
assert np.all(in_img == outimg)
|
||
|
|
outimg = do_prediction(in_img, model, patches=True, is_enhancement=True,
|
||
|
|
marginal_of_patch_percent=0.1)
|
||
|
|
assert in_img.shape == outimg.shape
|
||
|
|
assert np.all(in_img == outimg)
|
||
|
|
outimg = do_prediction(in_img, model, patches=True, is_enhancement=True,
|
||
|
|
marginal_of_patch_percent=0.2)
|
||
|
|
assert in_img.shape == outimg.shape
|
||
|
|
assert in_img.dtype == outimg.dtype
|
||
|
|
assert np.all(in_img == outimg)
|
||
|
|
|
||
|
|
@pytest.mark.parametrize(
|
||
|
|
"height,width",
|
||
|
|
[
|
||
|
|
(448, 448),
|
||
|
|
(672, 672),
|
||
|
|
(1088, 832),
|
||
|
|
(1152, 896),
|
||
|
|
])
|
||
|
|
def test_tiling_min(image_resources, height, width):
|
||
|
|
infile = image_resources[0]
|
||
|
|
class PseudoModel:
|
||
|
|
def predict(self, images, **kwargs):
|
||
|
|
M = images.min(axis=(1, 2, 3))
|
||
|
|
return 1. * (images == M)
|
||
|
|
@property
|
||
|
|
def input_shape(self):
|
||
|
|
return None, height, width, None
|
||
|
|
model = PseudoModel()
|
||
|
|
in_img = cv2.imread(infile)
|
||
|
|
outimg = do_prediction(in_img, model, patches=True,
|
||
|
|
marginal_of_patch_percent=0)
|
||
|
|
assert in_img.shape[:2] == outimg.shape
|
||
|
|
assert np.any(outimg)
|
||
|
|
outimg = do_prediction(in_img, model, patches=True,
|
||
|
|
marginal_of_patch_percent=0.1)
|
||
|
|
assert in_img.shape[:2] == outimg.shape
|
||
|
|
assert np.any(outimg)
|
||
|
|
outimg = do_prediction(in_img, model, patches=True,
|
||
|
|
marginal_of_patch_percent=0.2)
|
||
|
|
assert in_img.shape[:2] == outimg.shape
|
||
|
|
assert np.any(outimg)
|
||
|
|
|
||
|
|
@pytest.mark.parametrize(
|
||
|
|
"height,width",
|
||
|
|
[
|
||
|
|
(448, 448),
|
||
|
|
(672, 672),
|
||
|
|
(1088, 832),
|
||
|
|
(1152, 896),
|
||
|
|
])
|
||
|
|
def test_tiling_min_conf(image_resources, height, width):
|
||
|
|
infile = image_resources[0]
|
||
|
|
class PseudoModel:
|
||
|
|
def predict(self, images, **kwargs):
|
||
|
|
M = images.min(axis=(1, 2, 3))
|
||
|
|
return 1. * (images == M)
|
||
|
|
@property
|
||
|
|
def input_shape(self):
|
||
|
|
return None, height, width, None
|
||
|
|
model = PseudoModel()
|
||
|
|
in_img = cv2.imread(infile)
|
||
|
|
outimg, conf = do_prediction_new_concept(
|
||
|
|
in_img, model, patches=True,
|
||
|
|
marginal_of_patch_percent=0)
|
||
|
|
assert in_img.shape[:2] == outimg.shape
|
||
|
|
assert np.any(outimg)
|
||
|
|
assert np.sum(conf) < conf.size
|
||
|
|
outimg, conf = do_prediction_new_concept(
|
||
|
|
in_img, model, patches=True,
|
||
|
|
marginal_of_patch_percent=0.1)
|
||
|
|
assert in_img.shape[:2] == outimg.shape
|
||
|
|
assert np.any(outimg)
|
||
|
|
assert np.sum(conf) < conf.size
|
||
|
|
outimg, conf = do_prediction_new_concept(
|
||
|
|
in_img, model, patches=True,
|
||
|
|
marginal_of_patch_percent=0.2)
|
||
|
|
assert in_img.shape[:2] == outimg.shape
|
||
|
|
assert np.any(outimg)
|
||
|
|
assert np.sum(conf) < conf.size
|