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()
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
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
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
#!/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)
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)