-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathshow_layout.py
45 lines (43 loc) · 1.4 KB
/
show_layout.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import metaomr
import argparse
import logging
logging.basicConfig(level=logging.INFO)
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--page", type=int)
parser.add_argument("-s", "--show", dest="show", action="store_true")
parser.add_argument("-S", "--no-show", dest="show", action="store_false")
parser.add_argument("-i", "--interactive", dest="int", action="store_true")
parser.add_argument("-o", "--output", type=str)
parser.set_defaults(show=True)
parser.add_argument("path", type=str, help="path to scanned music")
args = parser.parse_args()
score = metaomr.open(args.path)
if args.page is None:
if args.output:
from matplotlib.backends.backend_pdf import PdfPages
import pylab as p
with PdfPages(args.output) as pdf:
for page in score:
page.process()
p.figure(figsize=page.orig_size)
ax = p.Axes(p.gcf(),[0,0,1,1],yticks=[],xticks=[],frame_on=False)
p.gcf().delaxes(p.gca())
p.gcf().add_axes(ax)
page.show()
pdf.savefig()
p.close()
else:
for page in score:
page.process()
if args.show:
page.show()
else:
page = score[args.page]
page.layout()
if args.show:
page.show()
if args.show and not args.output:
import pylab as p
if args.int:
p.ion()
p.show()