Exemple #1
0
def test_lut_simple():
    lut = np.zeros(2**9, dtype='uint8')
    lut[0] = 1
    res = np.zeros((64, 64), dtype='uint8')
    res = lut2d.binary_lut_filter(res, lut)
    assert (res == 1).all()
    res = lut2d.binary_lut_filter(res, lut)
    assert (res == 0).all()

    res = load_img('test_input.png')
    lut[:] = 1
    res = lut2d.binary_lut_filter(res, lut)
    assert (res == 1).all()
Exemple #2
0
def gen_walls_and_food(map_seed, size):
    rnd = np.random.RandomState(map_seed)
    lut_fn = join(dirname(__file__), 'blobgen_lut2d.dat')
    lut = np.loadtxt(lut_fn, dtype='uint8')

    walls = rnd.randint(0, 2, (size, size), dtype='uint8')
    for i in range(11):
        walls = lut2d.binary_lut_filter(walls, lut)

    food = rnd.randint(0, 2, (size, size), dtype='uint8')
    for i in range(9):
        food = lut2d.binary_lut_filter(food, lut)
        food[walls > 0] = 0

    return walls, food
Exemple #3
0
def generate_image(lut, count=filter_steps):
    # generate binary noise image
    img = np.random.randint(0, 2, (size, size), dtype='uint8')
    # apply the lut as filter several times
    for j in range(count):
        img = lut2d.binary_lut_filter(img, lut)
    return img
Exemple #4
0
def test_lut_result():
    res = load_img('test_input.png')
    res = lut2d.binary_lut_filter(res, test_data.test_lut)
    # imageio.imwrite('test_actual.png', res*255)

    expected = load_img('test_expected.png')
    assert (res == expected)[1:-1,
                             1:-1].all()  # test ignoring border conditions
Exemple #5
0
#!/usr/bin/env python3
import numpy as np
import lut2d
import sys
import imageio

if len(sys.argv) != 2:
    print('usage:', sys.argv[0], 'some-lut.txt')
filename = sys.argv[1]

lut = np.loadtxt(filename, dtype='uint8')

size = 128
img = np.random.randint(0, 2, (size, size), dtype='uint8')

steps = 70
for i in range(steps):
    imageio.imwrite('lut-step%05d.png' % i, img * 255, compress_level=6)
    img = lut2d.binary_lut_filter(img, lut)
Exemple #6
0
def test_numba(benchmark):
    res = load_img('test_input.png')
    lut2d.binary_lut_filter(res, test_data.test_lut)  # compile aka warm-up
    benchmark(lut2d.binary_lut_filter, res, test_data.test_lut)