def test_cascades(self): cascade0 = [ self.color_edges, lab.color_filter_from_greyscale_filter(lab.make_sharpen_filter(3)) ] cascade1 = [ lab.color_filter_from_greyscale_filter(lab.make_blur_filter(5)), self.color_edges, lab.color_filter_from_greyscale_filter(lab.make_sharpen_filter(3)) ] cascade3 = [self.color_edges] * 5 + [self.color_inverted] for fname in ('tree', ): for cix, cascade in enumerate([cascade0, cascade1]): inpfile = os.path.join(TEST_DIRECTORY, 'test_images', f'{fname}.png') expfile = os.path.join(TEST_DIRECTORY, 'test_results', f'{fname}_cascade{cix}.png') im = lab.load_color_image(inpfile) oim = object_hash(im) f_cascade = lab.filter_cascade(cascade) self.assertTrue(callable(f_cascade), 'filter_cascade should return a function.') result = f_cascade(im) expected = lab.load_color_image(expfile) self.assertEqual( object_hash(im), oim, 'Be careful not to modify the original image!') self.compare_color_images(result, expected)
def test_sharpen_filters_1(self): sharpen_filter = lab.make_sharpen_filter(7) self.assertTrue(callable(sharpen_filter), 'make_sharpen_filter should return a function.') color_sharpen = lab.color_filter_from_greyscale_filter(sharpen_filter) im = lab.load_color_image('test_images/sparrowchick.png') result = color_sharpen(im) lab.save_color_image( result, '/Users/yaxinliu/Downloads/lab1/Make_Sharpen.png')
def test_sharpen_filter_images(fname, ker_size): inpfile = os.path.join(TEST_DIRECTORY, 'test_images', f'{fname}.png') expfile = os.path.join(TEST_DIRECTORY, 'test_results', f'{fname}_sharpened{ker_size}.png') im = lab.load_color_image(inpfile) oim = object_hash(im) sharpen_filter = lab.make_sharpen_filter(ker_size) assert callable(sharpen_filter), 'make_sharpen_filter should return a function.' color_sharpen = lab.color_filter_from_greyscale_filter(sharpen_filter) result = color_sharpen(im) expected = lab.load_color_image(expfile) assert object_hash(im) == oim, 'Be careful not to modify the original image!' compare_color_images(result, expected)
def test_cascades(cascade, image): color_edges = lab.color_filter_from_greyscale_filter(lab.edges) color_inverted = lab.color_filter_from_greyscale_filter(lab.inverted) cascade0 = [color_edges, lab.color_filter_from_greyscale_filter(lab.make_sharpen_filter(3))] cascade1 = [lab.color_filter_from_greyscale_filter(lab.make_blur_filter(5)), color_edges, lab.color_filter_from_greyscale_filter(lab.make_sharpen_filter(3)), lambda im: {k: ([(i[1], i[0], i[2]) for i in v] if isinstance(v, list) else v) for k, v in im.items()}] cascade2 = [color_edges]*5 + [color_inverted] cascades = [cascade0, cascade1, cascade2] inpfile = os.path.join(TEST_DIRECTORY, 'test_images', f'{image}.png') expfile = os.path.join(TEST_DIRECTORY, 'test_results', f'{image}_cascade{cascade}.png') im = lab.load_color_image(inpfile) oim = object_hash(im) f_cascade = lab.filter_cascade(cascades[cascade]) assert callable(f_cascade), 'filter_cascade should return a function.' result = f_cascade(im) expected = lab.load_color_image(expfile) assert object_hash(im) == oim, 'Be careful not to modify the original image!' compare_color_images(result, expected)
def test_sharpen_filters(self): for fname in ('construct', 'bluegill'): for ker_size in {3, 5}: with self.subTest(f=fname): inpfile = os.path.join(TEST_DIRECTORY, 'test_images', f'{fname}.png') expfile = os.path.join(TEST_DIRECTORY, 'test_results', f'{fname}_sharpened{ker_size}.png') im = lab.load_color_image(inpfile) oim = object_hash(im) sharpened_filter = lab.make_sharpen_filter(ker_size) self.assertTrue( callable(sharpened_filter), 'make_sharpen_filter should return a function.') color_sharpen = lab.color_filter_from_greyscale_filter( sharpened_filter) result = color_sharpen(im) expected = lab.load_color_image(expfile) self.assertEqual( object_hash(im), oim, 'Be careful not to modify the original image!') self.compare_color_images(result, expected)