added cooridate transformation testing by images
This commit is contained in:
parent
1ffc9dcc68
commit
89afb8f920
@ -4,6 +4,7 @@ from fpdf import fpdf
|
|||||||
from funcy import compose
|
from funcy import compose
|
||||||
from pdf2image import pdf2image
|
from pdf2image import pdf2image
|
||||||
|
|
||||||
|
from image_prediction.estimator.preprocessor.utils import image_to_normalized_tensor
|
||||||
from image_prediction.image_extractor.extractor import ImageMetadataPair
|
from image_prediction.image_extractor.extractor import ImageMetadataPair
|
||||||
from image_prediction.info import Info
|
from image_prediction.info import Info
|
||||||
from image_prediction.transformer.transformers.coordinate.fitz import FitzCoordinateTransformer
|
from image_prediction.transformer.transformers.coordinate.fitz import FitzCoordinateTransformer
|
||||||
@ -65,6 +66,16 @@ def test_pdfnet_coordinate_transformer(position_metadata_in_given_system, positi
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("coordinate_system", ["fpdf"])
|
||||||
|
def test_fpdf_coordinate_transformer_by_image(position_metadata_in_given_system, position_metadata_in_reference_system):
|
||||||
|
metadata_transformed = FPDFCoordinateTransformer()(position_metadata_in_given_system)
|
||||||
|
|
||||||
|
target_image = metadata_to_test_image(position_metadata_in_reference_system)
|
||||||
|
test_image = metadata_to_test_image(metadata_transformed)
|
||||||
|
|
||||||
|
assert np.allclose(target_image, test_image)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def position_metadata_in_given_system(corner, corner2metadata_in_given_system):
|
def position_metadata_in_given_system(corner, corner2metadata_in_given_system):
|
||||||
return corner2metadata_in_given_system[corner]
|
return corner2metadata_in_given_system[corner]
|
||||||
@ -160,31 +171,25 @@ def base_position_metadata(width=100, height=100):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# utils not needed for tests but for inferring new coordinates systems:
|
def metadata_to_test_image(metadata):
|
||||||
|
image = get_coordinate_test_image()
|
||||||
|
pdf = get_coordinate_test_fpdf()
|
||||||
|
add_image(pdf, ImageMetadataPair(image, metadata))
|
||||||
|
page_image = fpdf_to_page_tensor(pdf)
|
||||||
|
return page_image
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
def get_coordinate_test_image():
|
||||||
def coordinate_test_pdf(position_metadata_in_given_system, coordinate_test_image, coordinate_test_fpdf):
|
|
||||||
add_image(coordinate_test_fpdf, ImageMetadataPair(coordinate_test_image, position_metadata_in_given_system))
|
|
||||||
return coordinate_test_fpdf.output(dest="S").encode("latin1")
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def coordinate_test_image():
|
|
||||||
return array_to_image(np.zeros(shape=(100, 100, 3)))
|
return array_to_image(np.zeros(shape=(100, 100, 3)))
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
def get_coordinate_test_fpdf():
|
||||||
def coordinate_test_fpdf():
|
|
||||||
pdf = fpdf.FPDF(unit="pt", format=(300, 300))
|
pdf = fpdf.FPDF(unit="pt", format=(300, 300))
|
||||||
return pdf
|
return pdf
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
def fpdf_to_page_tensor(fpdf):
|
||||||
def coordinate_test_page_image(coordinate_test_pdf):
|
pdf = fpdf.output(dest="S").encode("latin1")
|
||||||
return pdf2image.convert_from_bytes(coordinate_test_pdf)[0]
|
page_image = pdf2image.convert_from_bytes(pdf)[0]
|
||||||
|
tensor = image_to_normalized_tensor(page_image)
|
||||||
|
return tensor
|
||||||
@pytest.fixture(params=["list", "dict"])
|
|
||||||
def coordinate_type(request):
|
|
||||||
return request.param
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user