5 import gfxprim
.core
as core
6 import gfxprim
.loaders
as loaders
7 import gfxprim
.filters
as filters
10 def __init__(self
, orig_path
):
11 self
.orig_path
= orig_path
12 self
.img
= loaders
.Load('../' + orig_path
+ 'lenna.png')
13 self
.img_small
= loaders
.Load('../' + orig_path
+ 'lenna_small.png')
16 def write_asciidoc_head(self
, dst_path
, heading
):
17 self
.f
= open('../' + dst_path
+ 'images.txt', 'w')
19 f
.write('.Example Images: Original Image; ' + heading
+ '\n')
20 f
.write('image:' + self
.orig_path
+ 'lenna_small.png[\n')
21 f
.write('\t"Original Image",\n')
22 f
.write('\tlink="' + self
.orig_path
+ 'lenna.png"]\n')
24 def write_img_asciidoc(self
, desc
, fname
, fname_small
):
26 f
.write('image:' + fname_small
+ '[\n')
27 f
.write('\t"' + desc
+ '",\n')
28 f
.write('\tlink="' + fname
+ '"]\n')
30 def write_asciidoc_tail(self
):
34 def gen(self
, func
, func_params_arr
, dst_path
, func_name
):
36 print("Generating " + func_name
)
38 self
.write_asciidoc_head(dst_path
, func_name
+ ' ' +
39 ', '.join(map(lambda x
: ' '.join([str(i
) for i
in x
]), func_params_arr
)))
41 for i
in func_params_arr
:
42 str_i
= [str(x
) for x
in i
]
43 desc
= func_name
+ ' ' + ' '.join(str_i
)
47 fname
= dst_path
+ 'lenna_' + '_'.join(str_i
) + '.png'
48 fname_small
= dst_path
+ 'lenna_small_' + '_'.join(str_i
) + '.png'
50 self
.write_img_asciidoc(desc
, fname
, fname_small
)
52 res
= func(self
.img
, *i
)
53 res
.loaders
.Save('../' + fname
)
55 res
= func(self
.img_small
, *i
)
56 res
.loaders
.Save('../' + fname_small
)
58 self
.write_asciidoc_tail()
61 imggen
= ImgGen('images/orig/')
63 imggen
.gen(filters
.GaussianBlurAlloc
,
64 [[2, 2], [0, 4], [4, 0], [4, 4], [10, 10]],
65 'images/blur/', 'Gaussian Blur')
67 imggen
.gen(filters
.MedianAlloc
,
68 [[3, 3], [5, 5], [7, 7], [9, 9], [12, 12]],
69 'images/median/', 'Median')
71 imggen
.gen(filters
.EdgeSharpeningAlloc
,
72 [[0.1], [0.3], [0.5], [0.8], [1.0]],
73 'images/edge_sharpening/', 'Edge Sharpening')
75 if __name__
== '__main__':