예제 #1
0
def test_manual_rows_and_columns():
    numpy.random.seed(0)
    images = [
        numpy.random.uniform(size=(20, 10)).astype(numpy.float32) for i in range(96)
    ]
    workspace, module = make_tile_workspace(images)
    assert isinstance(module, cellprofiler.modules.tile.Tile)
    assert isinstance(workspace, cellprofiler_core.workspace.Workspace)
    module.wants_automatic_columns.value = False
    module.wants_automatic_rows.value = False
    module.rows.value = 6
    module.columns.value = 16
    module.tile_style.value = cellprofiler.modules.tile.S_ROW

    module.prepare_group(workspace, (), numpy.arange(1, 97))

    for i in range(96):
        workspace.set_image_set_for_testing_only(i)
        module.run(workspace)
    image = workspace.image_set.get_image(OUTPUT_IMAGE_NAME)
    pixel_data = image.pixel_data
    assert pixel_data.shape[0] == 6 * 20
    assert pixel_data.shape[1] == 16 * 10
    for i, image in enumerate(images):
        ii = int(i / 16)
        jj = i % 16
        iii = ii * 20
        jjj = jj * 10
        assert numpy.all(pixel_data[iii : (iii + 20), jjj : (jjj + 10)] == image)
예제 #2
0
def test_different_sizes():
    numpy.random.seed(10)
    images = [
        numpy.random.uniform(size=(20, 10)).astype(numpy.float32),
        numpy.random.uniform(size=(10, 20)).astype(numpy.float32),
        numpy.random.uniform(size=(40, 5)).astype(numpy.float32),
        numpy.random.uniform(size=(40, 20)).astype(numpy.float32),
    ]
    workspace, module = make_tile_workspace(images)
    assert isinstance(module, cellprofiler.modules.tile.Tile)
    assert isinstance(workspace, cellprofiler_core.workspace.Workspace)
    module.wants_automatic_columns.value = False
    module.wants_automatic_rows.value = False
    module.rows.value = 1
    module.columns.value = 4
    module.tile_style.value = cellprofiler.modules.tile.S_ROW
    module.prepare_group(workspace, (), numpy.arange(1, 4))

    for i in range(4):
        workspace.set_image_set_for_testing_only(i)
        module.run(workspace)
    module.post_group(workspace, None)
    pixel_data = workspace.image_set.get_image(OUTPUT_IMAGE_NAME).pixel_data
    assert pixel_data.shape[0] == 20
    assert pixel_data.shape[1] == 40
    assert numpy.all(pixel_data[:, :10] == images[0])
    assert numpy.all(pixel_data[:10, 10:20] == images[1][:, :10])
    assert numpy.all(pixel_data[10:, 10:20] == 0)
    assert numpy.all(pixel_data[:, 20:25] == images[2][:20, :])
    assert numpy.all(pixel_data[:, 25:30] == 0)
    assert numpy.all(pixel_data[:, 30:] == images[3][:20, :10])